library(tidyverse)
library(ggplot2)
library(lavaan)
library(car)Asian American Quality of Life: Analysis
Data set
This data set is from the 2015 Asian American Quality of Life survey. Participants are from Austin, Texas.
Input data set
qol <- read_csv("AAQoL.csv") |> mutate(across(where(is.character), ~as.factor(.x))) |>
mutate(`English Difficulties`=relevel(`English Difficulties`,ref="Not at all"),
`English Speaking`=relevel(`English Speaking`,ref="Not at all"),
Ethnicity = relevel(Ethnicity,ref="Chinese"))New names:
Rows: 2609 Columns: 231
── Column specification
──────────────────────────────────────────────────────── Delimiter: "," chr
(190): Gender, Ethnicity, Marital Status, No One, Spouse, Children, Gran... dbl
(41): Survey ID, Age, Education Completed, Household Size, Grandparent,...
ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
Specify the column types or set `show_col_types = FALSE` to quiet this message.
• `Other` -> `Other...17`
• `Other` -> `Other...89`
qol |> DT::datatable()Warning in instance$preRenderHook(instance): It seems your data is too big for
client-side DataTables. You may consider server-side processing:
https://rstudio.github.io/DT/server.html
There are 2,609 responses, some with missing data.
Summary statistics
Gender
qol |> group_by(`Gender`) |> summarize(n=n()) |>
mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 3 × 3
Gender n pct
<fct> <int> <dbl>
1 Female 1425 54.6
2 Male 1157 44.3
3 <NA> 27 1.03
Age
qol |> filter(!is.na(Age)) |> summarize(age=mean(Age),SD=sd(Age),min=min(Age),max=max(Age))# A tibble: 1 × 4
age SD min max
<dbl> <dbl> <dbl> <dbl>
1 42.9 17.1 18 98
qol |> filter(Age >= 50) |> summarize (n=n())# A tibble: 1 × 1
n
<int>
1 853
qol |> filter(Age >= 65) |> summarize (n=n(), median=quantile(Age,0.5))# A tibble: 1 × 2
n median
<int> <dbl>
1 382 71
Ethnicity
qol |> group_by(Ethnicity) |> summarize(n=n()) |> mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 7 × 3
Ethnicity n pct
<fct> <int> <dbl>
1 Chinese 639 24.5
2 Asian Indian 574 22.0
3 Vietnamese 514 19.7
4 Korean 471 18.1
5 Filipino 265 10.2
6 Other 144 5.52
7 <NA> 2 0.0767
Marital Status
qol |> group_by(`Marital Status`) |> summarize(n=n()) |> mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 5 × 3
`Marital Status` n pct
<fct> <int> <dbl>
1 Married 1725 66.1
2 Single 726 27.8
3 Living with a partner 110 4.22
4 Other 30 1.15
5 <NA> 18 0.690
Living Alone
qol |> mutate(alone=if_else(`No One`==0,"With Others","Alone")) |>
mutate(alone=factor(alone, levels=c("Alone","With Others"))) |>
group_by(alone) |>
summarize(n=n()) |>
mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 3 × 3
alone n pct
<fct> <int> <dbl>
1 With Others 2392 91.7
2 Alone 212 8.13
3 <NA> 5 0.192
Religion
qol |> group_by(Religion) |> summarize(n=n()) |> mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 8 × 3
Religion n pct
<fct> <int> <dbl>
1 Protestant 645 24.7
2 None 506 19.4
3 Catholic 492 18.9
4 Hindu 479 18.4
5 Buddhist 350 13.4
6 Muslim 68 2.61
7 Other 47 1.80
8 <NA> 22 0.843
Employment
qol |> mutate(`Full Time Employment`= ifelse(`Full Time Employment`==0,"No","Yes")) |>
group_by(`Full Time Employment`) |> summarize(n=n()) |>
mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 3 × 3
`Full Time Employment` n pct
<chr> <int> <dbl>
1 No 1458 55.9
2 Yes 1144 43.8
3 <NA> 7 0.268
US Born
qol |>group_by(`US Born`) |> summarize(n=n()) |>
mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 3 × 3
`US Born` n pct
<fct> <int> <dbl>
1 No 2353 90.2
2 Yes 239 9.16
3 <NA> 17 0.652
Duration
qol |> filter(!is.na(`Duration of Residency`)) |>
summarize(mean=mean(`Duration of Residency`), SD = sd(`Duration of Residency`))# A tibble: 1 × 2
mean SD
<dbl> <dbl>
1 15.6 12.7
English Speaking and Difficulty
Primary Speakers
1 = Primary Speaker, 0 = non-primary speaker
qol |> group_by(`Primary Language`) |> summarize(n=n()) |>
mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 3 × 3
`Primary Language` n pct
<dbl> <int> <dbl>
1 1 1725 66.1
2 0 859 32.9
3 NA 25 0.958
Profiency
qol |> group_by(`English Speaking`) |> summarize(n=n()) |>
mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 5 × 3
`English Speaking` n pct
<fct> <int> <dbl>
1 Very well 974 37.3
2 Well 808 31.0
3 Not well 632 24.2
4 Not at all 177 6.78
5 <NA> 18 0.690
qol |> group_by(`English Difficulties`) |> summarize(n=n()) |>
mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 5 × 3
`English Difficulties` n pct
<fct> <int> <dbl>
1 Not at all 772 29.6
2 Not much 733 28.1
3 Much 549 21.0
4 Very much 516 19.8
5 <NA> 39 1.49
Familiarity with America and Ethnic Origin
qol |> group_by(`Familiarity with America`) |> summarize(n=n()) |>
mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 5 × 3
`Familiarity with America` n pct
<fct> <int> <dbl>
1 High 1238 47.5
2 Low 721 27.6
3 Very high 498 19.1
4 Very low 123 4.71
5 <NA> 29 1.11
qol |> group_by(`Familiarity with Ethnic Origin`) |> summarize(n=n()) |>
mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 5 × 3
`Familiarity with Ethnic Origin` n pct
<fct> <int> <dbl>
1 High 1369 52.5
2 Very high 864 33.1
3 Low 295 11.3
4 Very low 51 1.95
5 <NA> 30 1.15
Comparing Familiarity with Ethnic Origin and America,
qol |> group_by(`Familiarity with Ethnic Origin`,`Familiarity with America`) |> summarize(n=n()) |>
mutate(pct = n/sum(n)*100) |>
arrange(desc(n))`summarise()` has grouped output by 'Familiarity with Ethnic Origin'. You can
override using the `.groups` argument.
# A tibble: 23 × 4
# Groups: Familiarity with Ethnic Origin [5]
`Familiarity with Ethnic Origin` `Familiarity with America` n pct
<fct> <fct> <int> <dbl>
1 High High 711 51.9
2 High Low 431 31.5
3 Very high High 422 48.8
4 Very high Very high 250 28.9
5 Very high Low 167 19.3
6 High Very high 165 12.1
7 Low Low 109 36.9
8 Low High 91 30.8
9 Low Very high 67 22.7
10 High Very low 51 3.73
# ℹ 13 more rows
Identifying to the ethnic community
qol |> group_by(`Identify Ethnically`) |> summarize(n=n()) |>
mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 5 × 3
`Identify Ethnically` n pct
<fct> <int> <dbl>
1 Somewhat close 1211 46.4
2 Very close 1039 39.8
3 Not very close 293 11.2
4 <NA> 35 1.34
5 Not at all 31 1.19
Belonging to the ethnic community
qol |> group_by(`Belonging`) |> summarize(n=n()) |>
mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 5 × 3
Belonging n pct
<fct> <int> <dbl>
1 Somewhat 1255 48.1
2 Very much 766 29.4
3 Not very much 450 17.2
4 Not at all 87 3.33
5 <NA> 51 1.95
Perceived Discrimination
qol |> group_by(Discrimination) |> summarize(n=n()) |>
mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 3 × 3
Discrimination n pct
<dbl> <int> <dbl>
1 0 1598 61.2
2 1 694 26.6
3 NA 317 12.2
Income
qol <- qol |> mutate(Income_median = case_match(Income,"$0 - $9,999"~"Below",
"$10,000 - $19,999" ~"Below",
"$20,000 - $29,999"~"Below",
"$30,000 - $39,999"~"Below",
"$40,000 - $49,999"~"Below",
"$50,000 - $59,999"~"Below",
"$60,000 - $69,999"~"Above",
"$70,000 and over"~"Above",
.default=Income)) |>
mutate(Income_median = factor(Income_median, levels=c("Below","Above")))
qol |> group_by(Income) |> summarize(n=n()) |>
mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 9 × 3
Income n pct
<fct> <int> <dbl>
1 $70,000 and over 993 38.1
2 $0 - $9,999 254 9.74
3 $30,000 - $39,999 207 7.93
4 $10,000 - $19,999 205 7.86
5 <NA> 203 7.78
6 $20,000 - $29,999 198 7.59
7 $60,000 - $69,999 190 7.28
8 $40,000 - $49,999 181 6.94
9 $50,000 - $59,999 178 6.82
We pool the following income levels as “Below”: 0-59,999, and “Above Median”: >60,000. This is based on Austin’s median income in 2015, which was found to be 67,195. (https://www.austinchamber.com/blog/02-21-2017-poverty-income#:~:text=Median%20household%20income%20is%20%2455%2C653,%2467%2C195%2C%20plus%20or%20minus%20%241%2C310.)
qol |> group_by(Income_median) |> summarize(n=n()) |>
mutate(pct = n/sum(n)*100) |>
arrange(desc(n))# A tibble: 3 × 3
Income_median n pct
<fct> <int> <dbl>
1 Below 1223 46.9
2 Above 1183 45.3
3 <NA> 203 7.78
Analysis
ps <- function(x,dataset=qol){
x <- enquo(x)
dataset |> group_by(!!x) |>
summarize(n=n()) |>
mutate(pct=n/sum(n)*100)
}Sources of Information summary statistics;
Family
ps(Family)# A tibble: 4 × 3
Family n pct
<fct> <int> <dbl>
1 3 1 0.0383
2 No 1258 48.2
3 Yes 1331 51.0
4 <NA> 19 0.728
Close Friends
ps(`Close Friend`)# A tibble: 3 × 3
`Close Friend` n pct
<fct> <int> <dbl>
1 No 1623 62.2
2 Yes 967 37.1
3 <NA> 19 0.728
Acquaintances
ps(`Acquaintances`)# A tibble: 3 × 3
Acquaintances n pct
<fct> <int> <dbl>
1 No 2141 82.1
2 Yes 448 17.2
3 <NA> 20 0.767
Health Professionals
ps(`Heal Professionals`)# A tibble: 3 × 3
`Heal Professionals` n pct
<fct> <int> <dbl>
1 No 1326 50.8
2 Yes 1264 48.4
3 <NA> 19 0.728
Mobile Apps
ps(`Mobile Apps`)# A tibble: 3 × 3
`Mobile Apps` n pct
<fct> <int> <dbl>
1 No 2345 89.9
2 Yes 245 9.39
3 <NA> 19 0.728
Online Communities
ps(`Online Communities`)# A tibble: 3 × 3
`Online Communities` n pct
<fct> <int> <dbl>
1 No 2180 83.6
2 Yes 410 15.7
3 <NA> 19 0.728
Health Websites
ps(`Health Website`)# A tibble: 3 × 3
`Health Website` n pct
<fct> <int> <dbl>
1 No 1490 57.1
2 Yes 1100 42.2
3 <NA> 19 0.728
Online sources
qol |> mutate(online_source = 1*(`Health Website`=="Yes" |
`Online Communities`=="Yes" |
`Social Networks`=="Yes" |
`Email`=="Yes")) |>
group_by(online_source) |> summarize(n=n()) |> mutate(pct=n/sum(n)*100)# A tibble: 3 × 3
online_source n pct
<dbl> <int> <dbl>
1 0 1083 41.5
2 1 1507 57.8
3 NA 19 0.728
Income
Source of Information association with income after controlling for ethnicity.
qol_1 <- qol |> select(Family,Income,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.)) |>
filter(Family %in%c("Yes","No")) |>
mutate(Family=droplevels(Family))
glm(Family~Income+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = Family ~ Income + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.9835 0.1686 5.835 5.39e-09 ***
Income$10,000 - $19,999 -0.4017 0.1978 -2.031 0.042272 *
Income$20,000 - $29,999 -0.3867 0.2003 -1.931 0.053474 .
Income$30,000 - $39,999 -0.5303 0.1964 -2.700 0.006926 **
Income$40,000 - $49,999 -0.6108 0.2035 -3.002 0.002683 **
Income$50,000 - $59,999 -0.4058 0.2040 -1.989 0.046698 *
Income$60,000 - $69,999 -0.6197 0.1994 -3.107 0.001889 **
Income$70,000 and over -0.5698 0.1488 -3.829 0.000129 ***
EthnicityAsian Indian -0.3872 0.1262 -3.067 0.002161 **
EthnicityFilipino -0.2240 0.1596 -1.403 0.160531
EthnicityKorean -0.6323 0.1316 -4.804 1.56e-06 ***
EthnicityOther -0.8091 0.2004 -4.037 5.41e-05 ***
EthnicityVietnamese -0.7411 0.1296 -5.719 1.07e-08 ***
`English Difficulties`Much 0.2193 0.1216 1.804 0.071241 .
`English Difficulties`Not much -0.1465 0.1121 -1.307 0.191244
`English Difficulties`Very much -0.2561 0.1226 -2.089 0.036718 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 3278.8 on 2365 degrees of freedom
Residual deviance: 3199.1 on 2350 degrees of freedom
AIC: 3231.1
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Family
LR Chisq Df Pr(>Chisq)
Income 17.865 7 0.012592 *
Ethnicity 46.064 5 8.812e-09 ***
`English Difficulties` 15.163 3 0.001683 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Source of Information: Close Friends association with income after controlling for ethnicity.
qol_1 <- qol |> select(`Close Friend`,Income,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(`Close Friend`~Income+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = `Close Friend` ~ Income + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.13492 0.16582 -0.814 0.4158
Income$10,000 - $19,999 -0.12475 0.19739 -0.632 0.5274
Income$20,000 - $29,999 -0.15124 0.20182 -0.749 0.4536
Income$30,000 - $39,999 -0.08579 0.19680 -0.436 0.6629
Income$40,000 - $49,999 -0.43329 0.21103 -2.053 0.0401 *
Income$50,000 - $59,999 -0.22828 0.20669 -1.104 0.2694
Income$60,000 - $69,999 -0.46163 0.20487 -2.253 0.0242 *
Income$70,000 and over -0.20467 0.14675 -1.395 0.1631
EthnicityAsian Indian 0.06090 0.12518 0.486 0.6266
EthnicityFilipino -0.71227 0.17234 -4.133 3.58e-05 ***
EthnicityKorean -0.20977 0.13206 -1.588 0.1122
EthnicityOther -0.43573 0.20772 -2.098 0.0359 *
EthnicityVietnamese -0.62180 0.13420 -4.633 3.60e-06 ***
`English Difficulties`Much 0.15348 0.12416 1.236 0.2164
`English Difficulties`Not much 0.12027 0.11561 1.040 0.2982
`English Difficulties`Very much -0.06415 0.12739 -0.504 0.6146
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 3129.1 on 2366 degrees of freedom
Residual deviance: 3070.5 on 2351 degrees of freedom
AIC: 3102.5
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Close Friend
LR Chisq Df Pr(>Chisq)
Income 8.196 7 0.3156
Ethnicity 43.365 5 3.116e-08 ***
`English Difficulties` 3.463 3 0.3256
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Source of Information: Acquaintances association with income after controlling for ethnicity.
qol_1 <- qol |> select(Acquaintances,Income,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(Acquaintances~Income+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = Acquaintances ~ Income + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.727617 0.220213 -7.845 4.32e-15 ***
Income$10,000 - $19,999 0.002513 0.249860 0.010 0.9920
Income$20,000 - $29,999 -0.219677 0.261358 -0.841 0.4006
Income$30,000 - $39,999 0.278483 0.237736 1.171 0.2414
Income$40,000 - $49,999 -0.218013 0.265666 -0.821 0.4119
Income$50,000 - $59,999 -0.195756 0.269101 -0.727 0.4670
Income$60,000 - $69,999 -0.402071 0.273372 -1.471 0.1414
Income$70,000 and over -0.126052 0.190403 -0.662 0.5080
EthnicityAsian Indian 0.002203 0.181318 0.012 0.9903
EthnicityFilipino -0.230734 0.244509 -0.944 0.3453
EthnicityKorean 0.932955 0.162692 5.734 9.78e-09 ***
EthnicityOther -0.624315 0.353287 -1.767 0.0772 .
EthnicityVietnamese 0.363443 0.170930 2.126 0.0335 *
`English Difficulties`Much 0.162197 0.155709 1.042 0.2976
`English Difficulties`Not much 0.146756 0.144410 1.016 0.3095
`English Difficulties`Very much -0.417090 0.186744 -2.233 0.0255 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 2184.9 on 2365 degrees of freedom
Residual deviance: 2086.6 on 2350 degrees of freedom
AIC: 2118.6
Number of Fisher Scoring iterations: 5
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Acquaintances
LR Chisq Df Pr(>Chisq)
Income 8.626 7 0.280627
Ethnicity 59.637 5 1.445e-11 ***
`English Difficulties` 11.434 3 0.009596 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Source of Information: Health professionals association with income after controlling for ethnicity.
qol_1 <- qol |> select(`Heal Professionals`,Income,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(`Heal Professionals`~Income+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = `Heal Professionals` ~ Income + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.10904 0.16694 0.653 0.513665
Income$10,000 - $19,999 -0.07481 0.20036 -0.373 0.708884
Income$20,000 - $29,999 0.13249 0.20079 0.660 0.509368
Income$30,000 - $39,999 0.07333 0.19732 0.372 0.710180
Income$40,000 - $49,999 0.17607 0.20424 0.862 0.388657
Income$50,000 - $59,999 0.45907 0.20508 2.238 0.025192 *
Income$60,000 - $69,999 0.26687 0.20027 1.333 0.182684
Income$70,000 and over 0.67613 0.14883 4.543 5.55e-06 ***
EthnicityAsian Indian -0.27207 0.12711 -2.140 0.032329 *
EthnicityFilipino 0.63742 0.16931 3.765 0.000167 ***
EthnicityKorean -0.37748 0.13352 -2.827 0.004696 **
EthnicityOther 0.21965 0.20171 1.089 0.276163
EthnicityVietnamese 0.26730 0.12994 2.057 0.039681 *
`English Difficulties`Much -0.73555 0.12326 -5.968 2.41e-09 ***
`English Difficulties`Not much -0.65957 0.11420 -5.776 7.67e-09 ***
`English Difficulties`Very much -0.49201 0.12455 -3.950 7.81e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 3281.0 on 2366 degrees of freedom
Residual deviance: 3113.6 on 2351 degrees of freedom
AIC: 3145.6
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Heal Professionals
LR Chisq Df Pr(>Chisq)
Income 44.661 7 1.591e-07 ***
Ethnicity 51.853 5 5.782e-10 ***
`English Difficulties` 48.112 3 2.016e-10 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
car::vif(mod1) GVIF Df GVIF^(1/(2*Df))
Income 1.151798 7 1.010146
Ethnicity 1.223501 5 1.020376
`English Difficulties` 1.127631 3 1.020222
Source of Information: Mobile apps association with income after controlling for ethnicity.
qol_1 <- qol |> select(`Mobile Apps`,Income,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(`Mobile Apps`~Income+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = `Mobile Apps` ~ Income + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.85921 0.32318 -8.847 < 2e-16 ***
Income$10,000 - $19,999 0.60241 0.37201 1.619 0.10538
Income$20,000 - $29,999 0.72075 0.36691 1.964 0.04948 *
Income$30,000 - $39,999 0.45927 0.37707 1.218 0.22322
Income$40,000 - $49,999 0.28894 0.40142 0.720 0.47164
Income$50,000 - $59,999 0.90908 0.36056 2.521 0.01169 *
Income$60,000 - $69,999 0.47782 0.38099 1.254 0.20978
Income$70,000 and over 0.79709 0.29436 2.708 0.00677 **
EthnicityAsian Indian 0.31851 0.20435 1.559 0.11908
EthnicityFilipino 0.07508 0.26590 0.282 0.77768
EthnicityKorean -0.27606 0.24666 -1.119 0.26306
EthnicityOther 0.32946 0.30925 1.065 0.28672
EthnicityVietnamese 0.35557 0.21170 1.680 0.09305 .
`English Difficulties`Much -0.25604 0.20512 -1.248 0.21194
`English Difficulties`Not much -0.26762 0.18968 -1.411 0.15827
`English Difficulties`Very much 0.01876 0.18897 0.099 0.92090
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1531.5 on 2366 degrees of freedom
Residual deviance: 1502.5 on 2351 degrees of freedom
AIC: 1534.5
Number of Fisher Scoring iterations: 5
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Mobile Apps
LR Chisq Df Pr(>Chisq)
Income 12.6505 7 0.08110 .
Ethnicity 10.1704 5 0.07055 .
`English Difficulties` 3.4183 3 0.33151
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
car::vif(mod1) GVIF Df GVIF^(1/(2*Df))
Income 1.165319 7 1.010988
Ethnicity 1.230721 5 1.020977
`English Difficulties` 1.153024 3 1.024015
Source of Information: Email association with income after controlling for ethnicity.
qol_1 <- qol |> select(Email,Income,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(Email~Income+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = Email ~ Income + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.71895 0.24254 -7.087 1.37e-12 ***
Income$10,000 - $19,999 0.09937 0.27699 0.359 0.71979
Income$20,000 - $29,999 -0.32526 0.30544 -1.065 0.28693
Income$30,000 - $39,999 0.18592 0.27474 0.677 0.49857
Income$40,000 - $49,999 -0.16323 0.30589 -0.534 0.59361
Income$50,000 - $59,999 -0.08853 0.30991 -0.286 0.77514
Income$60,000 - $69,999 0.12720 0.29100 0.437 0.66202
Income$70,000 and over -0.10039 0.21845 -0.460 0.64582
EthnicityAsian Indian -0.87637 0.19101 -4.588 4.47e-06 ***
EthnicityFilipino -0.84050 0.26084 -3.222 0.00127 **
EthnicityKorean -1.58062 0.25576 -6.180 6.41e-10 ***
EthnicityOther -0.99472 0.34914 -2.849 0.00439 **
EthnicityVietnamese -0.05644 0.16497 -0.342 0.73226
`English Difficulties`Much 0.49407 0.18743 2.636 0.00839 **
`English Difficulties`Not much 0.28658 0.18293 1.567 0.11721
`English Difficulties`Very much 0.51223 0.18759 2.731 0.00632 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1764.6 on 2366 degrees of freedom
Residual deviance: 1670.8 on 2351 degrees of freedom
AIC: 1702.8
Number of Fisher Scoring iterations: 5
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Email
LR Chisq Df Pr(>Chisq)
Income 4.589 7 0.70999
Ethnicity 73.035 5 2.39e-14 ***
`English Difficulties` 10.028 3 0.01833 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
car::vif(mod1) GVIF Df GVIF^(1/(2*Df))
Income 1.158490 7 1.010564
Ethnicity 1.187805 5 1.017360
`English Difficulties` 1.119153 3 1.018939
Source of Information: Online Communities association with income after controlling for ethnicity.
qol_1 <- qol |> select(`Online Communities`,Income,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(`Online Communities`~Income+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = `Online Communities` ~ Income + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.03870 0.23962 -8.508 < 2e-16 ***
Income$10,000 - $19,999 -0.01142 0.30172 -0.038 0.96980
Income$20,000 - $29,999 0.27831 0.28966 0.961 0.33666
Income$30,000 - $39,999 0.48431 0.27354 1.771 0.07663 .
Income$40,000 - $49,999 0.09453 0.30373 0.311 0.75563
Income$50,000 - $59,999 0.43914 0.28372 1.548 0.12167
Income$60,000 - $69,999 0.34385 0.28154 1.221 0.22196
Income$70,000 and over 0.58261 0.21445 2.717 0.00659 **
EthnicityAsian Indian 0.21852 0.16404 1.332 0.18281
EthnicityFilipino -0.13816 0.22229 -0.622 0.53425
EthnicityKorean 0.20646 0.17278 1.195 0.23210
EthnicityOther 0.02038 0.26781 0.076 0.93934
EthnicityVietnamese -0.07559 0.17986 -0.420 0.67429
`English Difficulties`Much -0.14417 0.16464 -0.876 0.38121
`English Difficulties`Not much -0.07654 0.14947 -0.512 0.60858
`English Difficulties`Very much 0.03242 0.15910 0.204 0.83855
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 2115.2 on 2366 degrees of freedom
Residual deviance: 2089.1 on 2351 degrees of freedom
AIC: 2121.1
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Online Communities
LR Chisq Df Pr(>Chisq)
Income 15.2034 7 0.03348 *
Ethnicity 5.5935 5 0.34780
`English Difficulties` 1.2152 3 0.74937
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
car::vif(mod1) GVIF Df GVIF^(1/(2*Df))
Income 1.140891 7 1.009459
Ethnicity 1.226282 5 1.020608
`English Difficulties` 1.159297 3 1.024942
Source of Information: Health Website association with income after controlling for ethnicity.
qol_1 <- qol |> select(`Health Website`,Income,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(`Health Website`~Income+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = `Health Website` ~ Income + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.2305 0.1711 -1.347 0.17802
Income$10,000 - $19,999 0.2029 0.2062 0.984 0.32507
Income$20,000 - $29,999 0.4174 0.2069 2.018 0.04359 *
Income$30,000 - $39,999 0.3750 0.2036 1.842 0.06547 .
Income$40,000 - $49,999 0.2880 0.2113 1.363 0.17288
Income$50,000 - $59,999 0.8446 0.2084 4.053 5.06e-05 ***
Income$60,000 - $69,999 0.3306 0.2061 1.604 0.10878
Income$70,000 and over 0.7730 0.1537 5.029 4.92e-07 ***
EthnicityAsian Indian -0.1198 0.1276 -0.939 0.34789
EthnicityFilipino 0.2587 0.1614 1.602 0.10913
EthnicityKorean -0.1240 0.1332 -0.931 0.35190
EthnicityOther 0.3549 0.2011 1.765 0.07762 .
EthnicityVietnamese -0.3502 0.1326 -2.640 0.00829 **
`English Difficulties`Much -0.6831 0.1233 -5.540 3.03e-08 ***
`English Difficulties`Not much -0.6834 0.1140 -5.994 2.05e-09 ***
`English Difficulties`Very much -0.6671 0.1242 -5.371 7.84e-08 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 3246.0 on 2366 degrees of freedom
Residual deviance: 3105.5 on 2351 degrees of freedom
AIC: 3137.5
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Health Website
LR Chisq Df Pr(>Chisq)
Income 42.766 7 3.701e-07 ***
Ethnicity 20.841 5 0.000868 ***
`English Difficulties` 52.778 3 2.045e-11 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
car::vif(mod1) GVIF Df GVIF^(1/(2*Df))
Income 1.134844 7 1.009076
Ethnicity 1.210635 5 1.019298
`English Difficulties` 1.141474 3 1.022298
Other sources of information
qol |> select(`Health Info Discription`) |> group_by(`Health Info Discription`) |> summarize(n=n())# A tibble: 63 × 2
`Health Info Discription` n
<fct> <int>
1 Army Base 2
2 at school 1
3 books and radio 1
4 Books; learned from college 1
5 CDC, NIH-NLM 1
6 church 1
7 co-worker/trainings 1
8 Co-workers 1
9 Conference,literatures 1
10 courses 1
# ℹ 53 more rows
DIchotomized Income and Age
Source of Information association with income after controlling for ethnicity.
qol_1 <- qol |> select(Family,Income_median,Ethnicity,`English Difficulties`,Age) %>% filter(complete.cases(.)) |>
filter(Family %in%c("Yes","No")) |>
mutate(Family=droplevels(Family))
glm(Family~Age+Income_median+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = Family ~ Age + Income_median + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.165371 0.162972 7.151 8.63e-13 ***
Age -0.013329 0.002633 -5.063 4.13e-07 ***
Income_medianAbove -0.233812 0.087402 -2.675 0.00747 **
EthnicityAsian Indian -0.398491 0.126240 -3.157 0.00160 **
EthnicityFilipino -0.233253 0.160830 -1.450 0.14697
EthnicityKorean -0.640809 0.131664 -4.867 1.13e-06 ***
EthnicityOther -0.855434 0.200005 -4.277 1.89e-05 ***
EthnicityVietnamese -0.767160 0.129624 -5.918 3.25e-09 ***
`English Difficulties`Much 0.290918 0.122576 2.373 0.01763 *
`English Difficulties`Not much -0.085811 0.113413 -0.757 0.44927
`English Difficulties`Very much -0.256892 0.122774 -2.092 0.03640 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 3273.3 on 2361 degrees of freedom
Residual deviance: 3179.4 on 2351 degrees of freedom
AIC: 3201.4
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Family
LR Chisq Df Pr(>Chisq)
Age 25.931 1 3.538e-07 ***
Income_median 7.178 1 0.0073795 **
Ethnicity 49.548 5 1.715e-09 ***
`English Difficulties` 18.090 3 0.0004214 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
coef(mod1) |> exp() -> OR
confint(mod1) |> exp() -> CIWaiting for profiling to be done...
CI 2.5 % 97.5 %
(Intercept) 2.3345132 4.4233707
Age 0.9816636 0.9918503
Income_medianAbove 0.6667190 0.9392148
EthnicityAsian Indian 0.5239065 0.8594823
EthnicityFilipino 0.5779810 1.0861944
EthnicityKorean 0.4066805 0.6815167
EthnicityOther 0.2861573 0.6275571
EthnicityVietnamese 0.3597710 0.5980986
`English Difficulties`Much 1.0524678 1.7019720
`English Difficulties`Not much 0.7347898 1.1462787
`English Difficulties`Very much 0.6077890 0.9836335
data.frame(estimate=OR,LCL = CI[,1], UCL = CI[,2]) estimate LCL UCL
(Intercept) 3.2071135 2.3345132 4.4233707
Age 0.9867599 0.9816636 0.9918503
Income_medianAbove 0.7915104 0.6667190 0.9392148
EthnicityAsian Indian 0.6713326 0.5239065 0.8594823
EthnicityFilipino 0.7919533 0.5779810 1.0861944
EthnicityKorean 0.5268662 0.4066805 0.6815167
EthnicityOther 0.4250988 0.2861573 0.6275571
EthnicityVietnamese 0.4643298 0.3597710 0.5980986
`English Difficulties`Much 1.3376545 1.0524678 1.7019720
`English Difficulties`Not much 0.9177674 0.7347898 1.1462787
`English Difficulties`Very much 0.7734514 0.6077890 0.9836335
Source of Information: Close Friends association with income after controlling for ethnicity.
qol_1 <- qol |> select(`Close Friend`,Income_median,Ethnicity,`English Difficulties`,Age) %>% filter(complete.cases(.))
glm(`Close Friend`~Age+Income_median+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = `Close Friend` ~ Age + Income_median + Ethnicity +
`English Difficulties`, family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.113847 0.161566 0.705 0.481028
Age -0.009948 0.002708 -3.674 0.000239 ***
Income_medianAbove -0.101044 0.089526 -1.129 0.259041
EthnicityAsian Indian 0.048261 0.125071 0.386 0.699594
EthnicityFilipino -0.732828 0.173462 -4.225 2.39e-05 ***
EthnicityKorean -0.214531 0.131635 -1.630 0.103156
EthnicityOther -0.481370 0.206645 -2.329 0.019835 *
EthnicityVietnamese -0.626033 0.133611 -4.685 2.79e-06 ***
`English Difficulties`Much 0.201216 0.124691 1.614 0.106587
`English Difficulties`Not much 0.171491 0.116621 1.470 0.141428
`English Difficulties`Very much -0.064459 0.127548 -0.505 0.613300
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 3124.4 on 2362 degrees of freedom
Residual deviance: 3059.3 on 2352 degrees of freedom
AIC: 3081.3
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Close Friend
LR Chisq Df Pr(>Chisq)
Age 13.673 1 0.0002175 ***
Income_median 1.275 1 0.2588335
Ethnicity 44.691 5 1.677e-08 ***
`English Difficulties` 5.626 3 0.1312934
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
coef(mod1) |> exp() -> OR
confint(mod1) |> exp() -> CIWaiting for profiling to be done...
CI 2.5 % 97.5 %
(Intercept) 0.8162246 1.5380843
Age 0.9848373 0.9953497
Income_medianAbove 0.7582790 1.0771364
EthnicityAsian Indian 0.8212284 1.3410844
EthnicityFilipino 0.3402972 0.6722438
EthnicityKorean 0.6230173 1.0439584
EthnicityOther 0.4090937 0.9212328
EthnicityVietnamese 0.4109169 0.6939373
`English Difficulties`Much 0.9575604 1.5614100
`English Difficulties`Not much 0.9445724 1.4922208
`English Difficulties`Very much 0.7295811 1.2030995
data.frame(estimate=OR,LCL = CI[,1], UCL = CI[,2]) estimate LCL UCL
(Intercept) 1.1205811 0.8162246 1.5380843
Age 0.9901011 0.9848373 0.9953497
Income_medianAbove 0.9038932 0.7582790 1.0771364
EthnicityAsian Indian 1.0494446 0.8212284 1.3410844
EthnicityFilipino 0.4805481 0.3402972 0.6722438
EthnicityKorean 0.8069201 0.6230173 1.0439584
EthnicityOther 0.6179364 0.4090937 0.9212328
EthnicityVietnamese 0.5347088 0.4109169 0.6939373
`English Difficulties`Much 1.2228891 0.9575604 1.5614100
`English Difficulties`Not much 1.1870732 0.9445724 1.4922208
`English Difficulties`Very much 0.9375750 0.7295811 1.2030995
Source of Information: Acquaintances association with income after controlling for ethnicity.
qol_1 <- qol |> select(Acquaintances,Income_median,Ethnicity,`English Difficulties`,Age) %>% filter(complete.cases(.))
glm(Acquaintances~Age+Income_median+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = Acquaintances ~ Age + Income_median + Ethnicity +
`English Difficulties`, family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.583500 0.210671 -7.516 5.63e-14 ***
Age -0.004629 0.003480 -1.330 0.1834
Income_medianAbove -0.135655 0.115134 -1.178 0.2387
EthnicityAsian Indian 0.001767 0.180654 0.010 0.9922
EthnicityFilipino -0.229271 0.244575 -0.937 0.3485
EthnicityKorean 0.933219 0.161658 5.773 7.80e-09 ***
EthnicityOther -0.666935 0.351785 -1.896 0.0580 .
EthnicityVietnamese 0.370743 0.169712 2.185 0.0289 *
`English Difficulties`Much 0.187252 0.156348 1.198 0.2310
`English Difficulties`Not much 0.172661 0.145666 1.185 0.2359
`English Difficulties`Very much -0.404930 0.186599 -2.170 0.0300 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 2183.3 on 2361 degrees of freedom
Residual deviance: 2091.0 on 2351 degrees of freedom
AIC: 2113
Number of Fisher Scoring iterations: 5
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Acquaintances
LR Chisq Df Pr(>Chisq)
Age 1.787 1 0.181331
Income_median 1.390 1 0.238353
Ethnicity 61.191 5 6.896e-12 ***
`English Difficulties` 12.017 3 0.007325 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
coef(mod1) |> exp() -> OR
confint(mod1) |> exp() -> CIWaiting for profiling to be done...
CI 2.5 % 97.5 %
(Intercept) 0.1350541 0.3085832
Age 0.9885628 1.0021473
Income_medianAbove 0.6964334 1.0939248
EthnicityAsian Indian 0.7018672 1.4265961
EthnicityFilipino 0.4846277 1.2684989
EthnicityKorean 1.8566976 3.5013383
EthnicityOther 0.2429820 0.9785961
EthnicityVietnamese 1.0395110 2.0235401
`English Difficulties`Much 0.8868010 1.6376938
`English Difficulties`Not much 0.8935146 1.5822384
`English Difficulties`Very much 0.4593743 0.9559963
data.frame(estimate=OR,LCL = CI[,1], UCL = CI[,2]) estimate LCL UCL
(Intercept) 0.2052555 0.1350541 0.3085832
Age 0.9953815 0.9885628 1.0021473
Income_medianAbove 0.8731435 0.6964334 1.0939248
EthnicityAsian Indian 1.0017683 0.7018672 1.4265961
EthnicityFilipino 0.7951128 0.4846277 1.2684989
EthnicityKorean 2.5426805 1.8566976 3.5013383
EthnicityOther 0.5132795 0.2429820 0.9785961
EthnicityVietnamese 1.4488106 1.0395110 2.0235401
`English Difficulties`Much 1.2059307 0.8868010 1.6376938
`English Difficulties`Not much 1.1884627 0.8935146 1.5822384
`English Difficulties`Very much 0.6670232 0.4593743 0.9559963
Source of Information: Health professionals association with income after controlling for ethnicity.
qol_1 <- qol |> select(`Heal Professionals`,Income_median,Ethnicity,`English Difficulties`,Age) %>% filter(complete.cases(.))
glm(`Heal Professionals`~Age+Income_median+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = `Heal Professionals` ~ Age + Income_median + Ethnicity +
`English Difficulties`, family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.048690 0.160890 -0.303 0.762170
Age 0.006785 0.002658 2.553 0.010684 *
Income_medianAbove 0.502325 0.088652 5.666 1.46e-08 ***
EthnicityAsian Indian -0.246897 0.126433 -1.953 0.050844 .
EthnicityFilipino 0.645245 0.169786 3.800 0.000144 ***
EthnicityKorean -0.367263 0.132720 -2.767 0.005654 **
EthnicityOther 0.264140 0.200686 1.316 0.188113
EthnicityVietnamese 0.274006 0.129020 2.124 0.033691 *
`English Difficulties`Much -0.797862 0.123829 -6.443 1.17e-10 ***
`English Difficulties`Not much -0.705960 0.115195 -6.128 8.88e-10 ***
`English Difficulties`Very much -0.479341 0.124369 -3.854 0.000116 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 3275.4 on 2362 degrees of freedom
Residual deviance: 3114.5 on 2352 degrees of freedom
AIC: 3136.5
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Heal Professionals
LR Chisq Df Pr(>Chisq)
Age 6.532 1 0.01059 *
Income_median 32.390 1 1.262e-08 ***
Ethnicity 51.425 5 7.078e-10 ***
`English Difficulties` 54.533 3 8.637e-12 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
car::vif(mod1) GVIF Df GVIF^(1/(2*Df))
Age 1.053190 1 1.026250
Income_median 1.083576 1 1.040950
Ethnicity 1.172510 5 1.016042
`English Difficulties` 1.144138 3 1.022696
coef(mod1) |> exp() -> OR
confint(mod1) |> exp() -> CIWaiting for profiling to be done...
CI 2.5 % 97.5 %
(Intercept) 0.6946781 1.3055715
Age 1.0015823 1.0120750
Income_medianAbove 1.3894407 1.9669536
EthnicityAsian Indian 0.6094790 1.0006160
EthnicityFilipino 1.3708290 2.6688237
EthnicityKorean 0.5336069 0.8979422
EthnicityOther 0.8801672 1.9353656
EthnicityVietnamese 1.0217200 1.6945300
`English Difficulties`Much 0.3529335 0.5735471
`English Difficulties`Not much 0.3936012 0.6183286
`English Difficulties`Very much 0.4850699 0.7899576
data.frame(estimate=OR,LCL = CI[,1], UCL = CI[,2]) estimate LCL UCL
(Intercept) 0.9524759 0.6946781 1.3055715
Age 1.0068078 1.0015823 1.0120750
Income_medianAbove 1.6525593 1.3894407 1.9669536
EthnicityAsian Indian 0.7812210 0.6094790 1.0006160
EthnicityFilipino 1.9064550 1.3708290 2.6688237
EthnicityKorean 0.6926278 0.5336069 0.8979422
EthnicityOther 1.3023103 0.8801672 1.9353656
EthnicityVietnamese 1.3152227 1.0217200 1.6945300
`English Difficulties`Much 0.4502906 0.3529335 0.5735471
`English Difficulties`Not much 0.4936346 0.3936012 0.6183286
`English Difficulties`Very much 0.6191910 0.4850699 0.7899576
Source of Information: Mobile apps association with income after controlling for ethnicity.
qol_1 <- qol |> select(`Mobile Apps`,Income_median,Ethnicity,`English Difficulties`,Age) %>% filter(complete.cases(.))
glm(`Mobile Apps`~Age+Income_median+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = `Mobile Apps` ~ Age + Income_median + Ethnicity +
`English Difficulties`, family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.052006 0.264632 -7.754 8.89e-15 ***
Age -0.008135 0.004547 -1.789 0.0736 .
Income_medianAbove 0.249575 0.144851 1.723 0.0849 .
EthnicityAsian Indian 0.272430 0.203961 1.336 0.1816
EthnicityFilipino 0.087813 0.265573 0.331 0.7409
EthnicityKorean -0.255867 0.245426 -1.043 0.2972
EthnicityOther 0.352306 0.306529 1.149 0.2504
EthnicityVietnamese 0.362753 0.209893 1.728 0.0839 .
`English Difficulties`Much -0.218293 0.205094 -1.064 0.2872
`English Difficulties`Not much -0.199159 0.190550 -1.045 0.2959
`English Difficulties`Very much 0.055932 0.188473 0.297 0.7666
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1530.6 on 2362 degrees of freedom
Residual deviance: 1507.9 on 2352 degrees of freedom
AIC: 1529.9
Number of Fisher Scoring iterations: 5
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Mobile Apps
LR Chisq Df Pr(>Chisq)
Age 3.2782 1 0.07021 .
Income_median 2.9845 1 0.08407 .
Ethnicity 9.2065 5 0.10110
`English Difficulties` 2.5490 3 0.46649
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
car::vif(mod1) GVIF Df GVIF^(1/(2*Df))
Age 1.044790 1 1.022150
Income_median 1.088313 1 1.043222
Ethnicity 1.184762 5 1.017099
`English Difficulties` 1.156840 3 1.024579
coef(mod1) |> exp() -> OR
confint(mod1) |> exp() -> CIWaiting for profiling to be done...
CI 2.5 % 97.5 %
(Intercept) 0.07570839 0.2138109
Age 0.98296920 1.0006633
Income_medianAbove 0.96704943 1.7072640
EthnicityAsian Indian 0.88138563 1.9641454
EthnicityFilipino 0.63954807 1.8191356
EthnicityKorean 0.47377135 1.2444084
EthnicityOther 0.75891551 2.5423724
EthnicityVietnamese 0.95253582 2.1730038
`English Difficulties`Much 0.53396409 1.1953307
`English Difficulties`Not much 0.56196649 1.1876827
`English Difficulties`Very much 0.72821573 1.5265266
data.frame(estimate=OR,LCL = CI[,1], UCL = CI[,2]) estimate LCL UCL
(Intercept) 0.1284769 0.07570839 0.2138109
Age 0.9918983 0.98296920 1.0006633
Income_medianAbove 1.2834803 0.96704943 1.7072640
EthnicityAsian Indian 1.3131509 0.88138563 1.9641454
EthnicityFilipino 1.0917836 0.63954807 1.8191356
EthnicityKorean 0.7742451 0.47377135 1.2444084
EthnicityOther 1.4223443 0.75891551 2.5423724
EthnicityVietnamese 1.4372811 0.95253582 2.1730038
`English Difficulties`Much 0.8038901 0.53396409 1.1953307
`English Difficulties`Not much 0.8194200 0.56196649 1.1876827
`English Difficulties`Very much 1.0575254 0.72821573 1.5265266
Source of Information: Email association with income after controlling for ethnicity.
qol_1 <- qol |> select(Age,Email,Income_median,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(Email~Age+Income_median+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = Email ~ Age + Income_median + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.670643 0.250347 -10.668 < 2e-16 ***
Age 0.021905 0.003801 5.763 8.28e-09 ***
Income_medianAbove 0.013050 0.135025 0.097 0.92301
EthnicityAsian Indian -0.822236 0.190804 -4.309 1.64e-05 ***
EthnicityFilipino -0.836542 0.262567 -3.186 0.00144 **
EthnicityKorean -1.621480 0.256396 -6.324 2.55e-10 ***
EthnicityOther -0.988713 0.348460 -2.837 0.00455 **
EthnicityVietnamese -0.077920 0.165345 -0.471 0.63746
`English Difficulties`Much 0.385509 0.190021 2.029 0.04248 *
`English Difficulties`Not much 0.161112 0.185409 0.869 0.38487
`English Difficulties`Very much 0.489113 0.188725 2.592 0.00955 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1763.5 on 2362 degrees of freedom
Residual deviance: 1641.0 on 2352 degrees of freedom
AIC: 1663
Number of Fisher Scoring iterations: 5
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Email
LR Chisq Df Pr(>Chisq)
Age 33.103 1 8.741e-09 ***
Income_median 0.009 1 0.92301
Ethnicity 72.672 5 2.845e-14 ***
`English Difficulties` 8.326 3 0.03973 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
car::vif(mod1) GVIF Df GVIF^(1/(2*Df))
Age 1.041187 1 1.020386
Income_median 1.093394 1 1.045655
Ethnicity 1.134792 5 1.012725
`English Difficulties` 1.130385 3 1.020636
coef(mod1) |> exp() -> OR
confint(mod1) |> exp() -> CIWaiting for profiling to be done...
CI 2.5 % 97.5 %
(Intercept) 0.04195969 0.1120232
Age 1.01456691 1.0298099
Income_medianAbove 0.77723523 1.3201025
EthnicityAsian Indian 0.30005278 0.6348771
EthnicityFilipino 0.25258895 0.7104847
EthnicityKorean 0.11645226 0.3197856
EthnicityOther 0.17705766 0.7037606
EthnicityVietnamese 0.66799075 1.2780881
`English Difficulties`Much 1.01327585 2.1366132
`English Difficulties`Not much 0.81736693 1.6925770
`English Difficulties`Very much 1.12651634 2.3635174
data.frame(estimate=OR,LCL = CI[,1], UCL = CI[,2]) estimate LCL UCL
(Intercept) 0.06920769 0.04195969 0.1120232
Age 1.02214708 1.01456691 1.0298099
Income_medianAbove 1.01313555 0.77723523 1.3201025
EthnicityAsian Indian 0.43944786 0.30005278 0.6348771
EthnicityFilipino 0.43320605 0.25258895 0.7104847
EthnicityKorean 0.19760596 0.11645226 0.3197856
EthnicityOther 0.37205527 0.17705766 0.7037606
EthnicityVietnamese 0.92503850 0.66799075 1.2780881
`English Difficulties`Much 1.47036187 1.01327585 2.1366132
`English Difficulties`Not much 1.17481689 0.81736693 1.6925770
`English Difficulties`Very much 1.63086906 1.12651634 2.3635174
Source of Information: Online Communities association with income after controlling for ethnicity.
qol_1 <- qol |> select(Age,`Online Communities`,Income_median,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(`Online Communities`~Age+Income_median+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = `Online Communities` ~ Age + Income_median + Ethnicity +
`English Difficulties`, family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.781276 0.216511 -8.227 < 2e-16 ***
Age -0.001377 0.003563 -0.387 0.69911
Income_medianAbove 0.331072 0.116338 2.846 0.00443 **
EthnicityAsian Indian 0.213733 0.163554 1.307 0.19128
EthnicityFilipino -0.123961 0.222106 -0.558 0.57677
EthnicityKorean 0.230964 0.171742 1.345 0.17868
EthnicityOther 0.049009 0.266012 0.184 0.85383
EthnicityVietnamese -0.047760 0.178444 -0.268 0.78897
`English Difficulties`Much -0.148575 0.164779 -0.902 0.36724
`English Difficulties`Not much -0.064011 0.150262 -0.426 0.67011
`English Difficulties`Very much 0.054390 0.158689 0.343 0.73179
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 2113.7 on 2362 degrees of freedom
Residual deviance: 2094.6 on 2352 degrees of freedom
AIC: 2116.6
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Online Communities
LR Chisq Df Pr(>Chisq)
Age 0.1498 1 0.698697
Income_median 8.1606 1 0.004281 **
Ethnicity 5.3697 5 0.372445
`English Difficulties` 1.4386 3 0.696516
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
car::vif(mod1) GVIF Df GVIF^(1/(2*Df))
Age 1.045823 1 1.022655
Income_median 1.074939 1 1.036793
Ethnicity 1.181630 5 1.016830
`English Difficulties` 1.166789 3 1.026043
coef(mod1) |> exp() -> OR
confint(mod1) |> exp() -> CIWaiting for profiling to be done...
CI 2.5 % 97.5 %
(Intercept) 0.1095119 0.2560137
Age 0.9916183 1.0055750
Income_medianAbove 1.1092802 1.7507000
EthnicityAsian Indian 0.8988373 1.7078055
EthnicityFilipino 0.5656148 1.3540816
EthnicityKorean 0.8990420 1.7641174
EthnicityOther 0.6104765 1.7400912
EthnicityVietnamese 0.6703686 1.3507186
`English Difficulties`Much 0.6220446 1.1876519
`English Difficulties`Not much 0.6980612 1.2587259
`English Difficulties`Very much 0.7718943 1.4388119
data.frame(estimate=OR,LCL = CI[,1], UCL = CI[,2]) estimate LCL UCL
(Intercept) 0.1684231 0.1095119 0.2560137
Age 0.9986237 0.9916183 1.0055750
Income_medianAbove 1.3924596 1.1092802 1.7507000
EthnicityAsian Indian 1.2382916 0.8988373 1.7078055
EthnicityFilipino 0.8834146 0.5656148 1.3540816
EthnicityKorean 1.2598138 0.8990420 1.7641174
EthnicityOther 1.0502295 0.6104765 1.7400912
EthnicityVietnamese 0.9533621 0.6703686 1.3507186
`English Difficulties`Much 0.8619353 0.6220446 1.1876519
`English Difficulties`Not much 0.9379943 0.6980612 1.2587259
`English Difficulties`Very much 1.0558966 0.7718943 1.4388119
Source of Information: Health Website association with income after controlling for ethnicity.
qol_1 <- qol |> select(Age,`Health Website`,Income_median,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(`Health Website`~Age+Income_median+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = `Health Website` ~ Age + Income_median + Ethnicity +
`English Difficulties`, family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.473245 0.160822 2.943 0.003254 **
Age -0.009854 0.002693 -3.660 0.000253 ***
Income_medianAbove 0.361683 0.088034 4.108 3.98e-05 ***
EthnicityAsian Indian -0.148138 0.126818 -1.168 0.242761
EthnicityFilipino 0.280915 0.161224 1.742 0.081441 .
EthnicityKorean -0.080419 0.132219 -0.608 0.543038
EthnicityOther 0.395742 0.199409 1.985 0.047191 *
EthnicityVietnamese -0.323797 0.131637 -2.460 0.013902 *
`English Difficulties`Much -0.646484 0.123267 -5.245 1.57e-07 ***
`English Difficulties`Not much -0.614601 0.114351 -5.375 7.67e-08 ***
`English Difficulties`Very much -0.618972 0.123580 -5.009 5.48e-07 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 3241.4 on 2362 degrees of freedom
Residual deviance: 3112.8 on 2352 degrees of freedom
AIC: 3134.8
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Health Website
LR Chisq Df Pr(>Chisq)
Age 13.548 1 0.0002325 ***
Income_median 16.909 1 3.921e-05 ***
Ethnicity 21.593 5 0.0006256 ***
`English Difficulties` 44.814 3 1.013e-09 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
car::vif(mod1) GVIF Df GVIF^(1/(2*Df))
Age 1.034820 1 1.017261
Income_median 1.067095 1 1.033003
Ethnicity 1.166940 5 1.015558
`English Difficulties` 1.144714 3 1.022781
coef(mod1) |> exp() -> OR
confint(mod1) |> exp() -> CIWaiting for profiling to be done...
CI 2.5 % 97.5 %
(Intercept) 1.1716413 2.2013747
Age 0.9849613 0.9954163
Income_medianAbove 1.2083439 1.7064310
EthnicityAsian Indian 0.6722893 1.1054097
EthnicityFilipino 0.9660854 1.8183664
EthnicityKorean 0.7118350 1.1955087
EthnicityOther 1.0061006 2.2011671
EthnicityVietnamese 0.5584708 0.9358103
`English Difficulties`Much 0.4110725 0.6665664
`English Difficulties`Not much 0.4319996 0.6764096
`English Difficulties`Very much 0.4222927 0.6855997
data.frame(estimate=OR,LCL = CI[,1], UCL = CI[,2]) estimate LCL UCL
(Intercept) 1.6051940 1.1716413 2.2013747
Age 0.9901947 0.9849613 0.9954163
Income_medianAbove 1.4357444 1.2083439 1.7064310
EthnicityAsian Indian 0.8623120 0.6722893 1.1054097
EthnicityFilipino 1.3243409 0.9660854 1.8183664
EthnicityKorean 0.9227294 0.7118350 1.1955087
EthnicityOther 1.4854864 1.0061006 2.2011671
EthnicityVietnamese 0.7233974 0.5584708 0.9358103
`English Difficulties`Much 0.5238847 0.4110725 0.6665664
`English Difficulties`Not much 0.5408564 0.4319996 0.6764096
`English Difficulties`Very much 0.5384979 0.4222927 0.6855997
Source of Information: Online resources association with age andincome after controlling for ethnicity.
qol_1 <- qol |> mutate(online_source = 1*(`Health Website`=="Yes" |
`Online Communities`=="Yes" |
`Social Networks`=="Yes" |
`Email`=="Yes")) |>
select(Age,online_source,Income_median,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(as.factor(online_source)~Age+Income_median+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = as.factor(online_source) ~ Age + Income_median +
Ethnicity + `English Difficulties`, family = "binomial",
data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.497500 0.169245 8.848 < 2e-16 ***
Age -0.013841 0.002672 -5.180 2.22e-07 ***
Income_medianAbove 0.380343 0.089370 4.256 2.08e-05 ***
EthnicityAsian Indian -0.639781 0.131790 -4.855 1.21e-06 ***
EthnicityFilipino -0.544275 0.166592 -3.267 0.00109 **
EthnicityKorean -0.536206 0.136298 -3.934 8.35e-05 ***
EthnicityOther -0.054718 0.213543 -0.256 0.79777
EthnicityVietnamese -0.801233 0.132593 -6.043 1.51e-09 ***
`English Difficulties`Much -0.350442 0.125304 -2.797 0.00516 **
`English Difficulties`Not much -0.334709 0.117362 -2.852 0.00435 **
`English Difficulties`Very much -0.318315 0.127161 -2.503 0.01231 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 3184.5 on 2362 degrees of freedom
Residual deviance: 3060.6 on 2352 degrees of freedom
AIC: 3082.6
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: as.factor(online_source)
LR Chisq Df Pr(>Chisq)
Age 27.065 1 1.967e-07 ***
Income_median 18.166 1 2.025e-05 ***
Ethnicity 48.624 5 2.649e-09 ***
`English Difficulties` 11.895 3 0.007753 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
car::vif(mod1) GVIF Df GVIF^(1/(2*Df))
Age 1.040500 1 1.020049
Income_median 1.073495 1 1.036096
Ethnicity 1.182391 5 1.016895
`English Difficulties` 1.162744 3 1.025449
coef(mod1) |> exp() -> OR
confint(mod1) |> exp() -> CIWaiting for profiling to be done...
CI 2.5 % 97.5 %
(Intercept) 3.2167677 6.2468651
Age 0.9810877 0.9914210
Income_medianAbove 1.2279487 1.7432394
EthnicityAsian Indian 0.4069458 0.6823199
EthnicityFilipino 0.4187935 0.8050680
EthnicityKorean 0.4475189 0.7637397
EthnicityOther 0.6265857 1.4497957
EthnicityVietnamese 0.3456861 0.5814279
`English Difficulties`Much 0.5509079 0.9004764
`English Difficulties`Not much 0.5683241 0.9004443
`English Difficulties`Very much 0.5668905 0.9333926
data.frame(estimate=OR,LCL = CI[,1], UCL = CI[,2]) estimate LCL UCL
(Intercept) 4.4704987 3.2167677 6.2468651
Age 0.9862541 0.9810877 0.9914210
Income_medianAbove 1.4627868 1.2279487 1.7432394
EthnicityAsian Indian 0.5274081 0.4069458 0.6823199
EthnicityFilipino 0.5802622 0.4187935 0.8050680
EthnicityKorean 0.5849635 0.4475189 0.7637397
EthnicityOther 0.9467519 0.6265857 1.4497957
EthnicityVietnamese 0.4487752 0.3456861 0.5814279
`English Difficulties`Much 0.7043765 0.5509079 0.9004764
`English Difficulties`Not much 0.7155465 0.5683241 0.9004443
`English Difficulties`Very much 0.7273737 0.5668905 0.9333926
income: Only people above age 50
Source of Information association with income after controlling for ethnicity.
qol_1 <- qol |> filter(Age >=50) |>
select(Family,Income,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.)) |>
filter(Family %in%c("Yes","No")) |>
mutate(Family=droplevels(Family))
glm(Family~Income+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = Family ~ Income + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.36681 0.30656 1.197 0.2315
Income$10,000 - $19,999 -0.26318 0.31311 -0.841 0.4006
Income$20,000 - $29,999 -0.23822 0.35264 -0.676 0.4993
Income$30,000 - $39,999 -0.47825 0.32187 -1.486 0.1373
Income$40,000 - $49,999 -0.74013 0.34391 -2.152 0.0314 *
Income$50,000 - $59,999 -0.17679 0.35075 -0.504 0.6142
Income$60,000 - $69,999 -0.82047 0.36974 -2.219 0.0265 *
Income$70,000 and over -0.27695 0.26501 -1.045 0.2960
EthnicityAsian Indian 0.05252 0.25650 0.205 0.8378
EthnicityFilipino -0.09251 0.30415 -0.304 0.7610
EthnicityKorean -0.29943 0.23696 -1.264 0.2064
EthnicityOther -0.93772 0.38605 -2.429 0.0151 *
EthnicityVietnamese -0.94545 0.22429 -4.215 2.49e-05 ***
`English Difficulties`Much 0.56231 0.23319 2.411 0.0159 *
`English Difficulties`Not much 0.19755 0.21576 0.916 0.3599
`English Difficulties`Very much 0.15509 0.25596 0.606 0.5446
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 999.82 on 721 degrees of freedom
Residual deviance: 952.66 on 706 degrees of freedom
AIC: 984.66
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Family
LR Chisq Df Pr(>Chisq)
Income 8.6351 7 0.27993
Ethnicity 26.7599 5 6.352e-05 ***
`English Difficulties` 6.4039 3 0.09353 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Dichotomized Income
qol_1 <- qol |> filter(Age >=50) |>
select(Family,Income_median,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.)) |>
filter(Family %in%c("Yes","No")) |>
mutate(Family=droplevels(Family))
glm(Family~Income_median+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = Family ~ Income_median + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.10800 0.23149 0.467 0.6408
Income_medianAbove -0.08014 0.16511 -0.485 0.6274
EthnicityAsian Indian 0.09598 0.25190 0.381 0.7032
EthnicityFilipino -0.17998 0.30069 -0.599 0.5495
EthnicityKorean -0.34842 0.23429 -1.487 0.1370
EthnicityOther -0.98306 0.38218 -2.572 0.0101 *
EthnicityVietnamese -1.00473 0.21997 -4.568 4.93e-06 ***
`English Difficulties`Much 0.55452 0.22914 2.420 0.0155 *
`English Difficulties`Not much 0.16856 0.21234 0.794 0.4273
`English Difficulties`Very much 0.14618 0.25281 0.578 0.5631
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 999.82 on 721 degrees of freedom
Residual deviance: 961.06 on 712 degrees of freedom
AIC: 981.06
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Family
LR Chisq Df Pr(>Chisq)
Income_median 0.236 1 0.62729
Ethnicity 32.311 5 5.155e-06 ***
`English Difficulties` 6.632 3 0.08461 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Source of Information: Close Friends association with income after controlling for ethnicity.
qol_1 <- qol |>filter(Age >=50) |>
select(`Close Friend`,Income,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(`Close Friend`~Income+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = `Close Friend` ~ Income + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.42874 0.31299 -1.370 0.1707
Income$10,000 - $19,999 0.06728 0.31352 0.215 0.8301
Income$20,000 - $29,999 -0.24858 0.36367 -0.684 0.4943
Income$30,000 - $39,999 -0.10892 0.32556 -0.335 0.7380
Income$40,000 - $49,999 -0.28828 0.35142 -0.820 0.4120
Income$50,000 - $59,999 -0.37253 0.36649 -1.016 0.3094
Income$60,000 - $69,999 -0.70694 0.39991 -1.768 0.0771 .
Income$70,000 and over -0.15951 0.26749 -0.596 0.5510
EthnicityAsian Indian 0.04070 0.25788 0.158 0.8746
EthnicityFilipino -0.38790 0.33304 -1.165 0.2441
EthnicityKorean -0.28089 0.24605 -1.142 0.2536
EthnicityOther 0.06676 0.37571 0.178 0.8590
EthnicityVietnamese -0.58392 0.23313 -2.505 0.0123 *
`English Difficulties`Much 0.47513 0.23846 1.992 0.0463 *
`English Difficulties`Not much 0.16504 0.22609 0.730 0.4654
`English Difficulties`Very much -0.12862 0.27239 -0.472 0.6368
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 927.18 on 722 degrees of freedom
Residual deviance: 904.51 on 707 degrees of freedom
AIC: 936.51
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Close Friend
LR Chisq Df Pr(>Chisq)
Income 5.2953 7 0.62397
Ethnicity 9.1507 5 0.10320
`English Difficulties` 6.4572 3 0.09137 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Dichotomized Income
qol_1 <- qol |>filter(Age >=50) |>
select(`Close Friend`,Income_median,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(`Close Friend`~Income_median+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = `Close Friend` ~ Income_median + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.49735 0.24121 -2.062 0.03922 *
Income_medianAbove -0.13721 0.17277 -0.794 0.42709
EthnicityAsian Indian 0.05348 0.25329 0.211 0.83276
EthnicityFilipino -0.44960 0.33006 -1.362 0.17314
EthnicityKorean -0.32399 0.24361 -1.330 0.18355
EthnicityOther -0.00814 0.37255 -0.022 0.98257
EthnicityVietnamese -0.63489 0.22881 -2.775 0.00552 **
`English Difficulties`Much 0.44476 0.23472 1.895 0.05811 .
`English Difficulties`Not much 0.12345 0.22276 0.554 0.57946
`English Difficulties`Very much -0.15928 0.27028 -0.589 0.55565
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 927.18 on 722 degrees of freedom
Residual deviance: 909.17 on 713 degrees of freedom
AIC: 929.17
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Close Friend
LR Chisq Df Pr(>Chisq)
Income_median 0.6329 1 0.42628
Ethnicity 11.5776 5 0.04106 *
`English Difficulties` 6.3690 3 0.09497 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Source of Information: Acquaintances association with income after controlling for ethnicity.
qol_1 <- qol |>filter(Age >=50) |>
select(Acquaintances,Income,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(Acquaintances~Income+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = Acquaintances ~ Income + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.06434 0.41642 -4.957 7.15e-07 ***
Income$10,000 - $19,999 -0.03410 0.40031 -0.085 0.93212
Income$20,000 - $29,999 -0.47548 0.49996 -0.951 0.34159
Income$30,000 - $39,999 0.58230 0.38001 1.532 0.12544
Income$40,000 - $49,999 -0.21786 0.46266 -0.471 0.63772
Income$50,000 - $59,999 -0.44706 0.49626 -0.901 0.36766
Income$60,000 - $69,999 -0.12095 0.48259 -0.251 0.80210
Income$70,000 and over 0.13439 0.34044 0.395 0.69303
EthnicityAsian Indian 0.84645 0.33201 2.549 0.01079 *
EthnicityFilipino -0.01465 0.47236 -0.031 0.97526
EthnicityKorean 0.94250 0.30819 3.058 0.00223 **
EthnicityOther -0.34351 0.64752 -0.531 0.59576
EthnicityVietnamese 0.36256 0.31120 1.165 0.24401
`English Difficulties`Much 0.24058 0.29596 0.813 0.41629
`English Difficulties`Not much 0.08182 0.27975 0.292 0.76991
`English Difficulties`Very much -0.37375 0.37729 -0.991 0.32186
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 665.42 on 721 degrees of freedom
Residual deviance: 634.44 on 706 degrees of freedom
AIC: 666.44
Number of Fisher Scoring iterations: 5
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Acquaintances
LR Chisq Df Pr(>Chisq)
Income 8.7685 7 0.269710
Ethnicity 15.6699 5 0.007852 **
`English Difficulties` 2.9576 3 0.398204
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Source of Information: Health professionals association with income after controlling for ethnicity.
qol_1 <- qol |> filter(Age >=50) |>
select(`Heal Professionals`,Income,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(`Heal Professionals`~Income+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = `Heal Professionals` ~ Income + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.28084 0.30836 -0.911 0.362415
Income$10,000 - $19,999 0.21623 0.31203 0.693 0.488327
Income$20,000 - $29,999 0.09153 0.35036 0.261 0.793900
Income$30,000 - $39,999 -0.03811 0.32043 -0.119 0.905329
Income$40,000 - $49,999 0.49568 0.33697 1.471 0.141292
Income$50,000 - $59,999 0.27589 0.34891 0.791 0.429109
Income$60,000 - $69,999 0.42902 0.36083 1.189 0.234440
Income$70,000 and over 0.97419 0.26694 3.649 0.000263 ***
EthnicityAsian Indian 0.37060 0.25872 1.432 0.152027
EthnicityFilipino 0.81650 0.33116 2.466 0.013679 *
EthnicityKorean -0.11733 0.24120 -0.486 0.626660
EthnicityOther 0.70143 0.38796 1.808 0.070608 .
EthnicityVietnamese 0.48786 0.22206 2.197 0.028024 *
`English Difficulties`Much -0.47030 0.23257 -2.022 0.043155 *
`English Difficulties`Not much -0.47406 0.21690 -2.186 0.028846 *
`English Difficulties`Very much -0.30988 0.25931 -1.195 0.232084
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1001.28 on 722 degrees of freedom
Residual deviance: 945.74 on 707 degrees of freedom
AIC: 977.74
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Heal Professionals
LR Chisq Df Pr(>Chisq)
Income 23.4507 7 0.001422 **
Ethnicity 14.9889 5 0.010410 *
`English Difficulties` 5.6138 3 0.131986
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
car::vif(mod1) GVIF Df GVIF^(1/(2*Df))
Income 1.302470 7 1.019055
Ethnicity 1.363641 5 1.031502
`English Difficulties` 1.214059 3 1.032856
Source of Information: Mobile apps association with income after controlling for ethnicity.
qol_1 <- qol |>filter(Age >=50) |>
select(`Mobile Apps`,Income,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(`Mobile Apps`~Income+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = `Mobile Apps` ~ Income + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.68837 0.72722 -5.072 3.94e-07 ***
Income$10,000 - $19,999 1.23016 0.70722 1.739 0.0820 .
Income$20,000 - $29,999 1.26095 0.75515 1.670 0.0950 .
Income$30,000 - $39,999 0.75306 0.76359 0.986 0.3240
Income$40,000 - $49,999 0.45139 0.85089 0.530 0.5958
Income$50,000 - $59,999 0.65099 0.84715 0.768 0.4422
Income$60,000 - $69,999 1.10923 0.80040 1.386 0.1658
Income$70,000 and over 1.52534 0.64670 2.359 0.0183 *
EthnicityAsian Indian 0.99591 0.45319 2.198 0.0280 *
EthnicityFilipino -0.09863 0.62134 -0.159 0.8739
EthnicityKorean 0.21641 0.49337 0.439 0.6609
EthnicityOther 0.37391 0.69144 0.541 0.5887
EthnicityVietnamese 0.80723 0.41883 1.927 0.0539 .
`English Difficulties`Much -0.51195 0.42059 -1.217 0.2235
`English Difficulties`Not much -0.36401 0.36738 -0.991 0.3218
`English Difficulties`Very much -0.48091 0.47049 -1.022 0.3067
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 398.98 on 722 degrees of freedom
Residual deviance: 379.32 on 707 degrees of freedom
AIC: 411.32
Number of Fisher Scoring iterations: 6
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Mobile Apps
LR Chisq Df Pr(>Chisq)
Income 10.6108 7 0.1565
Ethnicity 8.1279 5 0.1493
`English Difficulties` 1.9692 3 0.5788
car::vif(mod1) GVIF Df GVIF^(1/(2*Df))
Income 1.325632 7 1.020339
Ethnicity 1.333288 5 1.029182
`English Difficulties` 1.269087 3 1.040516
Source of Information: Email association with income after controlling for ethnicity.
qol_1 <- qol |> filter(Age >=50) |>
select(Email,Income,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(Email~Income+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = Email ~ Income + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.990850 0.384575 -2.576 0.00998 **
Income$10,000 - $19,999 0.258859 0.400814 0.646 0.51839
Income$20,000 - $29,999 -0.343944 0.507724 -0.677 0.49814
Income$30,000 - $39,999 0.526123 0.403411 1.304 0.19217
Income$40,000 - $49,999 -0.245881 0.485303 -0.507 0.61240
Income$50,000 - $59,999 -0.001372 0.484744 -0.003 0.99774
Income$60,000 - $69,999 0.343542 0.465999 0.737 0.46099
Income$70,000 and over 0.416312 0.337439 1.234 0.21730
EthnicityAsian Indian -0.694628 0.307687 -2.258 0.02397 *
EthnicityFilipino -1.168110 0.422479 -2.765 0.00569 **
EthnicityKorean -1.660003 0.359541 -4.617 3.89e-06 ***
EthnicityOther -2.049923 0.747299 -2.743 0.00609 **
EthnicityVietnamese -0.728322 0.261011 -2.790 0.00526 **
`English Difficulties`Much 0.103462 0.289954 0.357 0.72123
`English Difficulties`Not much 0.012295 0.275223 0.045 0.96437
`English Difficulties`Very much -0.239403 0.326252 -0.734 0.46307
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 699.09 on 722 degrees of freedom
Residual deviance: 653.48 on 707 degrees of freedom
AIC: 685.48
Number of Fisher Scoring iterations: 5
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Email
LR Chisq Df Pr(>Chisq)
Income 7.319 7 0.3964
Ethnicity 35.659 5 1.111e-06 ***
`English Difficulties` 1.190 3 0.7553
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
car::vif(mod1) GVIF Df GVIF^(1/(2*Df))
Income 1.294807 7 1.018626
Ethnicity 1.322140 5 1.028319
`English Difficulties` 1.225625 3 1.034490
Source of Information: Online Communities association with income after controlling for ethnicity.
qol_1 <- qol |>
filter(Age >=50) |>
select(`Online Communities`,Income,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(`Online Communities`~Income+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = `Online Communities` ~ Income + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.58579 0.42761 -3.709 0.000208 ***
Income$10,000 - $19,999 0.06886 0.44701 0.154 0.877574
Income$20,000 - $29,999 -0.06721 0.50771 -0.132 0.894682
Income$30,000 - $39,999 0.03459 0.46045 0.075 0.940114
Income$40,000 - $49,999 -0.67664 0.57000 -1.187 0.235194
Income$50,000 - $59,999 0.35332 0.47552 0.743 0.457471
Income$60,000 - $69,999 -0.36161 0.57322 -0.631 0.528148
Income$70,000 and over 0.44661 0.37038 1.206 0.227885
EthnicityAsian Indian -0.07136 0.35618 -0.200 0.841216
EthnicityFilipino -0.07632 0.41833 -0.182 0.855229
EthnicityKorean -0.26110 0.34515 -0.756 0.449368
EthnicityOther 0.57520 0.44489 1.293 0.196043
EthnicityVietnamese 0.05264 0.30451 0.173 0.862747
`English Difficulties`Much -0.35620 0.31056 -1.147 0.251390
`English Difficulties`Not much -0.24270 0.28189 -0.861 0.389251
`English Difficulties`Very much -0.72440 0.36996 -1.958 0.050226 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 609.67 on 722 degrees of freedom
Residual deviance: 592.24 on 707 degrees of freedom
AIC: 624.24
Number of Fisher Scoring iterations: 5
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Online Communities
LR Chisq Df Pr(>Chisq)
Income 8.7773 7 0.2690
Ethnicity 3.0724 5 0.6888
`English Difficulties` 4.2641 3 0.2343
car::vif(mod1) GVIF Df GVIF^(1/(2*Df))
Income 1.325827 7 1.020350
Ethnicity 1.376986 5 1.032507
`English Difficulties` 1.277129 3 1.041612
Source of Information: Health Website association with income after controlling for ethnicity.
qol_1 <- qol |>filter(Age >=50) |>
select(`Health Website`,Income,Ethnicity,`English Difficulties`) %>% filter(complete.cases(.))
glm(`Health Website`~Income+Ethnicity+`English Difficulties`,data=qol_1,family="binomial") -> mod1
summary(mod1)
Call:
glm(formula = `Health Website` ~ Income + Ethnicity + `English Difficulties`,
family = "binomial", data = qol_1)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.5791 0.3412 -1.697 0.08961 .
Income$10,000 - $19,999 0.3790 0.3584 1.058 0.29025
Income$20,000 - $29,999 0.1019 0.4168 0.245 0.80680
Income$30,000 - $39,999 0.6505 0.3614 1.800 0.07187 .
Income$40,000 - $49,999 0.2670 0.3892 0.686 0.49269
Income$50,000 - $59,999 1.1734 0.3800 3.088 0.00201 **
Income$60,000 - $69,999 0.3058 0.4146 0.738 0.46077
Income$70,000 and over 1.2548 0.3017 4.160 3.19e-05 ***
EthnicityAsian Indian -0.1206 0.2716 -0.444 0.65705
EthnicityFilipino 0.4944 0.3205 1.542 0.12297
EthnicityKorean -0.5106 0.2581 -1.978 0.04788 *
EthnicityOther 0.6469 0.3884 1.665 0.09581 .
EthnicityVietnamese -0.4972 0.2383 -2.086 0.03694 *
`English Difficulties`Much -0.6411 0.2419 -2.650 0.00806 **
`English Difficulties`Not much -0.5409 0.2214 -2.443 0.01458 *
`English Difficulties`Very much -1.1101 0.2749 -4.039 5.37e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 950.14 on 722 degrees of freedom
Residual deviance: 859.13 on 707 degrees of freedom
AIC: 891.13
Number of Fisher Scoring iterations: 4
car::Anova(mod1)Analysis of Deviance Table (Type II tests)
Response: Health Website
LR Chisq Df Pr(>Chisq)
Income 34.633 7 1.311e-05 ***
Ethnicity 17.853 5 0.0031368 **
`English Difficulties` 18.116 3 0.0004164 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
car::vif(mod1) GVIF Df GVIF^(1/(2*Df))
Income 1.265151 7 1.016941
Ethnicity 1.334244 5 1.029256
`English Difficulties` 1.219501 3 1.033627
Other sources of information
qol |> filter(Age >=50) |> select(`Health Info Discription`) |> group_by(`Health Info Discription`) |> summarize(n=n())# A tibble: 25 × 2
`Health Info Discription` n
<fct> <int>
1 books and radio 1
2 CDC, NIH-NLM 1
3 church 1
4 Don't know 1
5 Dr. Oz show 1
6 Family Doctor 2
7 From work 1
8 Health & News XXX 1
9 Internet, google 1
10 Korean Newspaper 1
# ℹ 15 more rows
Health Care Access and Utilization
We will use a model comparison approach to determine whether accounting for Asian ethnicity will improve model performance. The model of choice will be logistic regression for the following response variables: Physical check up, dental check up, urgent care, and folk medicine.
Physical check up
mod2 <- glm(`Physical Check-up`~Income + Age + Gender + `Health Insurance` + `Dental Insurance`,
data=qol,
family="binomial")
mod3 <- glm(`Physical Check-up`~Income + Age + Gender + `Health Insurance` + `Dental Insurance` + Ethnicity,
data=qol,
family="binomial")
summary(mod2)
Call:
glm(formula = `Physical Check-up` ~ Income + Age + Gender + `Health Insurance` +
`Dental Insurance`, family = "binomial", data = qol)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.791676 0.221500 -8.089 6.02e-16 ***
Income$10,000 - $19,999 -0.165434 0.214035 -0.773 0.4396
Income$20,000 - $29,999 -0.100058 0.216709 -0.462 0.6443
Income$30,000 - $39,999 0.071347 0.218307 0.327 0.7438
Income$40,000 - $49,999 -0.113657 0.222478 -0.511 0.6094
Income$50,000 - $59,999 0.183865 0.228487 0.805 0.4210
Income$60,000 - $69,999 -0.150382 0.220380 -0.682 0.4950
Income$70,000 and over 0.468626 0.172532 2.716 0.0066 **
Age 0.027938 0.003073 9.092 < 2e-16 ***
GenderMale -0.605188 0.098124 -6.168 6.94e-10 ***
`Health Insurance`Yes 1.376535 0.148848 9.248 < 2e-16 ***
`Dental Insurance`Yes 0.634931 0.114134 5.563 2.65e-08 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 2948.2 on 2340 degrees of freedom
Residual deviance: 2563.2 on 2329 degrees of freedom
(268 observations deleted due to missingness)
AIC: 2587.2
Number of Fisher Scoring iterations: 4
car::vif(mod2) GVIF Df GVIF^(1/(2*Df))
Income 1.251830 7 1.016173
Age 1.045017 1 1.022261
Gender 1.031051 1 1.015407
`Health Insurance` 1.217957 1 1.103611
`Dental Insurance` 1.381205 1 1.175247
car::Anova(mod2) %>% round(3)Analysis of Deviance Table (Type II tests)
Response: Physical Check-up
LR Chisq Df Pr(>Chisq)
Income 25.851 7 0.001 ***
Age 88.724 1 <2e-16 ***
Gender 38.644 1 <2e-16 ***
`Health Insurance` 90.705 1 <2e-16 ***
`Dental Insurance` 30.726 1 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(mod3)
Call:
glm(formula = `Physical Check-up` ~ Income + Age + Gender + `Health Insurance` +
`Dental Insurance` + Ethnicity, family = "binomial", data = qol)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.852115 0.238185 -7.776 7.49e-15 ***
Income$10,000 - $19,999 -0.174121 0.215485 -0.808 0.419066
Income$20,000 - $29,999 -0.126341 0.221148 -0.571 0.567799
Income$30,000 - $39,999 0.077850 0.222946 0.349 0.726948
Income$40,000 - $49,999 -0.117466 0.226777 -0.518 0.604473
Income$50,000 - $59,999 0.282262 0.231499 1.219 0.222738
Income$60,000 - $69,999 -0.032230 0.223516 -0.144 0.885347
Income$70,000 and over 0.590740 0.174999 3.376 0.000736 ***
Age 0.029034 0.003129 9.279 < 2e-16 ***
GenderMale -0.625762 0.101055 -6.192 5.93e-10 ***
`Health Insurance`Yes 1.407716 0.150764 9.337 < 2e-16 ***
`Dental Insurance`Yes 0.520273 0.117424 4.431 9.39e-06 ***
EthnicityAsian Indian 0.017213 0.145624 0.118 0.905908
EthnicityFilipino 0.340001 0.198125 1.716 0.086144 .
EthnicityKorean -0.532275 0.146953 -3.622 0.000292 ***
EthnicityOther -0.135731 0.231250 -0.587 0.557241
EthnicityVietnamese 0.459230 0.155465 2.954 0.003138 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 2948.2 on 2340 degrees of freedom
Residual deviance: 2519.3 on 2324 degrees of freedom
(268 observations deleted due to missingness)
AIC: 2553.3
Number of Fisher Scoring iterations: 4
car::vif(mod3) GVIF Df GVIF^(1/(2*Df))
Income 1.397966 7 1.024219
Age 1.063751 1 1.031383
Gender 1.071561 1 1.035162
`Health Insurance` 1.229949 1 1.109031
`Dental Insurance` 1.431618 1 1.196502
Ethnicity 1.229986 5 1.020916
car::Anova(mod3) %>% round(3)Analysis of Deviance Table (Type II tests)
Response: Physical Check-up
LR Chisq Df Pr(>Chisq)
Income 33.852 7 < 2.2e-16 ***
Age 92.732 1 < 2.2e-16 ***
Gender 38.996 1 < 2.2e-16 ***
`Health Insurance` 92.711 1 < 2.2e-16 ***
`Dental Insurance` 19.461 1 < 2.2e-16 ***
Ethnicity 43.845 5 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(mod2,mod3,test="LRT")Analysis of Deviance Table
Model 1: `Physical Check-up` ~ Income + Age + Gender + `Health Insurance` +
`Dental Insurance`
Model 2: `Physical Check-up` ~ Income + Age + Gender + `Health Insurance` +
`Dental Insurance` + Ethnicity
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 2329 2563.2
2 2324 2519.3 5 43.845 2.49e-08 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
data.frame(BIC_mod2=BIC(mod2), BIC_mod3=BIC(mod3)) |> mutate(Diff=BIC_mod3-BIC_mod2) BIC_mod2 BIC_mod3 Diff
1 2656.26 2651.206 -5.053363
The ethnicity model has a lower BIC and residual deviance, which implies better model performance compared to the model without the ethnicity included.
Dichotomized Income
mod2 <- glm(`Physical Check-up`~Income_median + Age + Gender + `Health Insurance` + `Dental Insurance`,
data=qol,
family="binomial")
mod3 <- glm(`Physical Check-up`~Income_median + Age + Gender + `Health Insurance` + `Dental Insurance` + Ethnicity,
data=qol,
family="binomial")
summary(mod2)
Call:
glm(formula = `Physical Check-up` ~ Income_median + Age + Gender +
`Health Insurance` + `Dental Insurance`, family = "binomial",
data = qol)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.84870 0.19114 -9.672 < 2e-16 ***
Income_medianAbove 0.36072 0.10508 3.433 0.000598 ***
Age 0.02801 0.00306 9.154 < 2e-16 ***
GenderMale -0.58198 0.09749 -5.970 2.38e-09 ***
`Health Insurance`Yes 1.37667 0.14743 9.338 < 2e-16 ***
`Dental Insurance`Yes 0.68527 0.11220 6.108 1.01e-09 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 2948.2 on 2340 degrees of freedom
Residual deviance: 2577.3 on 2335 degrees of freedom
(268 observations deleted due to missingness)
AIC: 2589.3
Number of Fisher Scoring iterations: 4
car::vif(mod2) Income_median Age Gender `Health Insurance`
1.181987 1.036519 1.024472 1.202153
`Dental Insurance`
1.343688
car::Anova(mod2) %>% round(3)Analysis of Deviance Table (Type II tests)
Response: Physical Check-up
LR Chisq Df Pr(>Chisq)
Income_median 11.748 1 0.001 ***
Age 89.891 1 <2e-16 ***
Gender 36.139 1 <2e-16 ***
`Health Insurance` 92.365 1 <2e-16 ***
`Dental Insurance` 37.065 1 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(mod3)
Call:
glm(formula = `Physical Check-up` ~ Income_median + Age + Gender +
`Health Insurance` + `Dental Insurance` + Ethnicity, family = "binomial",
data = qol)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.906706 0.209210 -9.114 < 2e-16 ***
Income_medianAbove 0.464116 0.109133 4.253 2.11e-05 ***
Age 0.029130 0.003114 9.355 < 2e-16 ***
GenderMale -0.604207 0.100349 -6.021 1.73e-09 ***
`Health Insurance`Yes 1.404308 0.149320 9.405 < 2e-16 ***
`Dental Insurance`Yes 0.583308 0.115090 5.068 4.01e-07 ***
EthnicityAsian Indian 0.039877 0.144220 0.277 0.782162
EthnicityFilipino 0.335561 0.197416 1.700 0.089175 .
EthnicityKorean -0.514733 0.145317 -3.542 0.000397 ***
EthnicityOther -0.133909 0.228354 -0.586 0.557601
EthnicityVietnamese 0.448860 0.154070 2.913 0.003576 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 2948.2 on 2340 degrees of freedom
Residual deviance: 2535.1 on 2330 degrees of freedom
(268 observations deleted due to missingness)
AIC: 2557.1
Number of Fisher Scoring iterations: 4
car::vif(mod3) GVIF Df GVIF^(1/(2*Df))
Income_median 1.251194 1 1.118568
Age 1.053543 1 1.026423
Gender 1.064604 1 1.031796
`Health Insurance` 1.213146 1 1.101429
`Dental Insurance` 1.385858 1 1.177225
Ethnicity 1.169075 5 1.015744
car::Anova(mod3) %>% round(3)Analysis of Deviance Table (Type II tests)
Response: Physical Check-up
LR Chisq Df Pr(>Chisq)
Income_median 18.078 1 < 2.2e-16 ***
Age 94.271 1 < 2.2e-16 ***
Gender 36.813 1 < 2.2e-16 ***
`Health Insurance` 93.974 1 < 2.2e-16 ***
`Dental Insurance` 25.478 1 < 2.2e-16 ***
Ethnicity 42.175 5 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(mod2,mod3,test="LRT")Analysis of Deviance Table
Model 1: `Physical Check-up` ~ Income_median + Age + Gender + `Health Insurance` +
`Dental Insurance`
Model 2: `Physical Check-up` ~ Income_median + Age + Gender + `Health Insurance` +
`Dental Insurance` + Ethnicity
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 2335 2577.3
2 2330 2535.1 5 42.175 5.43e-08 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
data.frame(BIC_mod2=BIC(mod2), BIC_mod3=BIC(mod3)) |> mutate(Diff=BIC_mod3-BIC_mod2) BIC_mod2 BIC_mod3 Diff
1 2623.813 2620.43 -3.382989
We now calculate the odds ratios and 95% confidence intervals.
OR <- exp(coef(mod3))
OR_CI <- exp(confint(mod3))Waiting for profiling to be done...
OR_df <- data.frame(estimate = OR, LCL=OR_CI[,1], UCL = OR_CI[,2])
OR_df["Age",] <- OR_df["Age",]^10
OR_df estimate LCL UCL
(Intercept) 0.1485690 0.09816799 0.2230073
Income_medianAbove 1.5906082 1.28440787 1.9704538
Age 1.3381718 1.25963886 1.4232556
GenderMale 0.5465076 0.44859315 0.6648808
`Health Insurance`Yes 4.0727073 3.04696861 5.4732754
`Dental Insurance`Yes 1.7919563 1.42978189 2.2453300
EthnicityAsian Indian 1.0406829 0.78442755 1.3809984
EthnicityFilipino 1.3987252 0.95464933 2.0719093
EthnicityKorean 0.5976604 0.44918996 0.7942013
EthnicityOther 0.8746696 0.56135515 1.3758755
EthnicityVietnamese 1.5665256 1.15976512 2.1223754
Dental check up
mod2 <- glm(`Dentist Check-up`~Income + Age + Gender + `Health Insurance` + `Dental Insurance`,
data=qol,
family="binomial")
mod3 <- glm(`Dentist Check-up`~Income + Age + Gender + `Health Insurance` + `Dental Insurance` + Ethnicity,
data=qol,
family="binomial")
summary(mod2)
Call:
glm(formula = `Dentist Check-up` ~ Income + Age + Gender + `Health Insurance` +
`Dental Insurance`, family = "binomial", data = qol)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.564608 0.218250 -7.169 7.56e-13 ***
Income$10,000 - $19,999 -0.355973 0.215685 -1.650 0.098856 .
Income$20,000 - $29,999 -0.119991 0.215247 -0.557 0.577215
Income$30,000 - $39,999 0.197338 0.212110 0.930 0.352186
Income$40,000 - $49,999 -0.029866 0.218651 -0.137 0.891355
Income$50,000 - $59,999 0.466839 0.223983 2.084 0.037136 *
Income$60,000 - $69,999 -0.130191 0.216663 -0.601 0.547913
Income$70,000 and over 0.548444 0.167810 3.268 0.001082 **
Age 0.016451 0.002879 5.715 1.10e-08 ***
GenderMale -0.611567 0.095164 -6.426 1.31e-10 ***
`Health Insurance`Yes 0.540154 0.151323 3.570 0.000358 ***
`Dental Insurance`Yes 1.399448 0.109933 12.730 < 2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 3169.7 on 2332 degrees of freedom
Residual deviance: 2696.3 on 2321 degrees of freedom
(276 observations deleted due to missingness)
AIC: 2720.3
Number of Fisher Scoring iterations: 4
car::vif(mod2) GVIF Df GVIF^(1/(2*Df))
Income 1.212765 7 1.013874
Age 1.049007 1 1.024210
Gender 1.034115 1 1.016914
`Health Insurance` 1.188875 1 1.090355
`Dental Insurance` 1.348203 1 1.161122
car::Anova(mod2) %>% round(3)Analysis of Deviance Table (Type II tests)
Response: Dentist Check-up
LR Chisq Df Pr(>Chisq)
Income 43.514 7 < 2.2e-16 ***
Age 33.298 1 < 2.2e-16 ***
Gender 42.036 1 < 2.2e-16 ***
`Health Insurance` 13.047 1 < 2.2e-16 ***
`Dental Insurance` 168.903 1 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(mod3)
Call:
glm(formula = `Dentist Check-up` ~ Income + Age + Gender + `Health Insurance` +
`Dental Insurance` + Ethnicity, family = "binomial", data = qol)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.227465 0.233222 -5.263 1.42e-07 ***
Income$10,000 - $19,999 -0.502910 0.218675 -2.300 0.021459 *
Income$20,000 - $29,999 -0.320628 0.218282 -1.469 0.141869
Income$30,000 - $39,999 0.063815 0.215561 0.296 0.767199
Income$40,000 - $49,999 -0.186746 0.222172 -0.841 0.400602
Income$50,000 - $59,999 0.421417 0.225512 1.869 0.061663 .
Income$60,000 - $69,999 -0.117850 0.220987 -0.533 0.593832
Income$70,000 and over 0.633374 0.170046 3.725 0.000196 ***
Age 0.015498 0.002935 5.281 1.29e-07 ***
GenderMale -0.503110 0.098166 -5.125 2.97e-07 ***
`Health Insurance`Yes 0.572604 0.153190 3.738 0.000186 ***
`Dental Insurance`Yes 1.391181 0.113559 12.251 < 2e-16 ***
EthnicityAsian Indian -1.062227 0.144800 -7.336 2.20e-13 ***
EthnicityFilipino -0.031389 0.189558 -0.166 0.868478
EthnicityKorean -0.448159 0.148279 -3.022 0.002508 **
EthnicityOther -0.202173 0.234423 -0.862 0.388452
EthnicityVietnamese -0.011413 0.149074 -0.077 0.938975
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 3169.7 on 2332 degrees of freedom
Residual deviance: 2622.4 on 2316 degrees of freedom
(276 observations deleted due to missingness)
AIC: 2656.4
Number of Fisher Scoring iterations: 4
car::vif(mod3) GVIF Df GVIF^(1/(2*Df))
Income 1.378711 7 1.023204
Age 1.058330 1 1.028752
Gender 1.065155 1 1.032063
`Health Insurance` 1.190317 1 1.091017
`Dental Insurance` 1.396124 1 1.181577
Ethnicity 1.280598 5 1.025041
car::Anova(mod3) %>% round(3)Analysis of Deviance Table (Type II tests)
Response: Dentist Check-up
LR Chisq Df Pr(>Chisq)
Income 62.672 7 < 2.2e-16 ***
Age 28.263 1 < 2.2e-16 ***
Gender 26.512 1 < 2.2e-16 ***
`Health Insurance` 14.312 1 < 2.2e-16 ***
`Dental Insurance` 156.605 1 < 2.2e-16 ***
Ethnicity 73.873 5 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(mod2,mod3,test="LRT")Analysis of Deviance Table
Model 1: `Dentist Check-up` ~ Income + Age + Gender + `Health Insurance` +
`Dental Insurance`
Model 2: `Dentist Check-up` ~ Income + Age + Gender + `Health Insurance` +
`Dental Insurance` + Ethnicity
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 2321 2696.3
2 2316 2622.4 5 73.873 1.599e-14 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
data.frame(BIC_mod2=BIC(mod2), BIC_mod3=BIC(mod3)) |> mutate(Diff=BIC_mod3-BIC_mod2) BIC_mod2 BIC_mod3 Diff
1 2789.363 2754.264 -35.09842
The ethnicity model has a lower BIC and residual deviance, which implies better model performance compared to the model without the ethnicity included.
Dichotomized Income
mod2 <- glm(`Dentist Check-up`~Income_median + Age + Gender + `Health Insurance` + `Dental Insurance`,
data=qol,
family="binomial")
mod3 <- glm(`Dentist Check-up`~Income_median + Age + Gender + `Health Insurance` + `Dental Insurance` + Ethnicity,
data=qol,
family="binomial")
summary(mod2)
Call:
glm(formula = `Dentist Check-up` ~ Income_median + Age + Gender +
`Health Insurance` + `Dental Insurance`, family = "binomial",
data = qol)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.589269 0.186753 -8.510 < 2e-16 ***
Income_medianAbove 0.385192 0.100098 3.848 0.000119 ***
Age 0.016350 0.002853 5.730 1.00e-08 ***
GenderMale -0.578529 0.094179 -6.143 8.11e-10 ***
`Health Insurance`Yes 0.549049 0.149446 3.674 0.000239 ***
`Dental Insurance`Yes 1.462856 0.108247 13.514 < 2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 3169.7 on 2332 degrees of freedom
Residual deviance: 2725.1 on 2327 degrees of freedom
(276 observations deleted due to missingness)
AIC: 2737.1
Number of Fisher Scoring iterations: 4
car::vif(mod2) Income_median Age Gender `Health Insurance`
1.158003 1.040251 1.026058 1.175117
`Dental Insurance`
1.325233
car::Anova(mod2) %>% round(3)Analysis of Deviance Table (Type II tests)
Response: Dentist Check-up
LR Chisq Df Pr(>Chisq)
Income_median 14.681 1 < 2.2e-16 ***
Age 33.467 1 < 2.2e-16 ***
Gender 38.302 1 < 2.2e-16 ***
`Health Insurance` 13.836 1 < 2.2e-16 ***
`Dental Insurance` 191.913 1 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(mod3)
Call:
glm(formula = `Dentist Check-up` ~ Income_median + Age + Gender +
`Health Insurance` + `Dental Insurance` + Ethnicity, family = "binomial",
data = qol)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.367962 0.204293 -6.696 2.14e-11 ***
Income_medianAbove 0.549783 0.105148 5.229 1.71e-07 ***
Age 0.015411 0.002906 5.304 1.13e-07 ***
GenderMale -0.476130 0.097049 -4.906 9.29e-07 ***
`Health Insurance`Yes 0.565850 0.150817 3.752 0.000176 ***
`Dental Insurance`Yes 1.467219 0.111740 13.131 < 2e-16 ***
EthnicityAsian Indian -0.997668 0.142371 -7.008 2.43e-12 ***
EthnicityFilipino -0.034805 0.188211 -0.185 0.853286
EthnicityKorean -0.408149 0.145987 -2.796 0.005177 **
EthnicityOther -0.170972 0.229376 -0.745 0.456042
EthnicityVietnamese -0.014333 0.146971 -0.098 0.922314
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 3169.7 on 2332 degrees of freedom
Residual deviance: 2657.8 on 2322 degrees of freedom
(276 observations deleted due to missingness)
AIC: 2679.8
Number of Fisher Scoring iterations: 4
car::vif(mod3) GVIF Df GVIF^(1/(2*Df))
Income_median 1.238623 1 1.112934
Age 1.050456 1 1.024918
Gender 1.058098 1 1.028639
`Health Insurance` 1.174017 1 1.083520
`Dental Insurance` 1.375509 1 1.172821
Ethnicity 1.202686 5 1.018627
car::Anova(mod3) %>% round(3)Analysis of Deviance Table (Type II tests)
Response: Dentist Check-up
LR Chisq Df Pr(>Chisq)
Income_median 27.269 1 < 2.2e-16 ***
Age 28.493 1 < 2.2e-16 ***
Gender 24.255 1 < 2.2e-16 ***
`Health Insurance` 14.423 1 < 2.2e-16 ***
`Dental Insurance` 181.610 1 < 2.2e-16 ***
Ethnicity 67.302 5 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(mod2,mod3,test="LRT")Analysis of Deviance Table
Model 1: `Dentist Check-up` ~ Income_median + Age + Gender + `Health Insurance` +
`Dental Insurance`
Model 2: `Dentist Check-up` ~ Income_median + Age + Gender + `Health Insurance` +
`Dental Insurance` + Ethnicity
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 2327 2725.1
2 2322 2657.8 5 67.302 3.729e-13 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
data.frame(BIC_mod2=BIC(mod2), BIC_mod3=BIC(mod3)) |> mutate(Diff=BIC_mod3-BIC_mod2) BIC_mod2 BIC_mod3 Diff
1 2771.666 2743.139 -28.52748
We now calculate the odds ratios and 95% confidence intervals.
OR <- exp(coef(mod3))
OR_CI <- exp(confint(mod3))Waiting for profiling to be done...
OR_df <- data.frame(estimate = OR, LCL=OR_CI[,1], UCL = OR_CI[,2])
OR_df["Age",] <- OR_df["Age",]^10
OR_df estimate LCL UCL
(Intercept) 0.2546253 0.1699903 0.3788036
Income_medianAbove 1.7328772 1.4102079 2.1299004
Age 1.1666235 1.1022304 1.2352627
GenderMale 0.6211829 0.5133304 0.7510426
`Health Insurance`Yes 1.7609435 1.3129853 2.3725899
`Dental Insurance`Yes 4.3371588 3.4885461 5.4068204
EthnicityAsian Indian 0.3687383 0.2784854 0.4867069
EthnicityFilipino 0.9657933 0.6696204 1.4013785
EthnicityKorean 0.6648799 0.4991349 0.8848177
EthnicityOther 0.8428449 0.5393305 1.3269184
EthnicityVietnamese 0.9857697 0.7390772 1.3152478
Urgent Care
mod2 <- glm(`Urgentcare`~Income + Age + Gender + `Health Insurance` + `Dental Insurance`,
data=qol,
family="binomial")
mod3 <- glm(`Urgentcare`~Income + Age + Gender + `Health Insurance` + `Dental Insurance` + Ethnicity,
data=qol,
family="binomial")
summary(mod2)
Call:
glm(formula = Urgentcare ~ Income + Age + Gender + `Health Insurance` +
`Dental Insurance`, family = "binomial", data = qol)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.628813 0.285621 -9.204 < 2e-16 ***
Income$10,000 - $19,999 0.103635 0.266389 0.389 0.69725
Income$20,000 - $29,999 0.291749 0.259072 1.126 0.26011
Income$30,000 - $39,999 -0.239587 0.278005 -0.862 0.38879
Income$40,000 - $49,999 0.163175 0.266674 0.612 0.54061
Income$50,000 - $59,999 -0.012392 0.275700 -0.045 0.96415
Income$60,000 - $69,999 0.049139 0.267143 0.184 0.85406
Income$70,000 and over -0.090993 0.209564 -0.434 0.66414
Age 0.009455 0.003400 2.781 0.00542 **
GenderMale 0.046069 0.111497 0.413 0.67947
`Health Insurance`Yes 0.461500 0.208546 2.213 0.02690 *
`Dental Insurance`Yes 0.365912 0.137902 2.653 0.00797 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 2134.9 on 2324 degrees of freedom
Residual deviance: 2104.7 on 2313 degrees of freedom
(284 observations deleted due to missingness)
AIC: 2128.7
Number of Fisher Scoring iterations: 4
car::vif(mod2) GVIF Df GVIF^(1/(2*Df))
Income 1.244903 7 1.015770
Age 1.025471 1 1.012656
Gender 1.012255 1 1.006109
`Health Insurance` 1.192892 1 1.092196
`Dental Insurance` 1.381201 1 1.175245
car::Anova(mod2) %>% round(3)Analysis of Deviance Table (Type II tests)
Response: Urgentcare
LR Chisq Df Pr(>Chisq)
Income 5.677 7 0.578
Age 7.663 1 0.006 **
Gender 0.171 1 0.680
`Health Insurance` 5.203 1 0.023 *
`Dental Insurance` 7.218 1 0.007 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(mod3)
Call:
glm(formula = Urgentcare ~ Income + Age + Gender + `Health Insurance` +
`Dental Insurance` + Ethnicity, family = "binomial", data = qol)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.029825 0.310965 -9.743 < 2e-16 ***
Income$10,000 - $19,999 0.143040 0.268911 0.532 0.59478
Income$20,000 - $29,999 0.244280 0.262371 0.931 0.35183
Income$30,000 - $39,999 -0.308454 0.281026 -1.098 0.27238
Income$40,000 - $49,999 0.098707 0.269453 0.366 0.71412
Income$50,000 - $59,999 -0.038185 0.278140 -0.137 0.89080
Income$60,000 - $69,999 0.056761 0.268558 0.211 0.83261
Income$70,000 and over -0.053120 0.210768 -0.252 0.80102
Age 0.009016 0.003459 2.607 0.00915 **
GenderMale 0.072787 0.114311 0.637 0.52429
`Health Insurance`Yes 0.468559 0.208911 2.243 0.02491 *
`Dental Insurance`Yes 0.339428 0.140732 2.412 0.01587 *
EthnicityAsian Indian 0.357767 0.180361 1.984 0.04730 *
EthnicityFilipino 0.624667 0.207249 3.014 0.00258 **
EthnicityKorean 0.511938 0.182607 2.803 0.00506 **
EthnicityOther 0.495625 0.263786 1.879 0.06026 .
EthnicityVietnamese 0.662442 0.177498 3.732 0.00019 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 2134.9 on 2324 degrees of freedom
Residual deviance: 2087.1 on 2308 degrees of freedom
(284 observations deleted due to missingness)
AIC: 2121.1
Number of Fisher Scoring iterations: 4
car::vif(mod3) GVIF Df GVIF^(1/(2*Df))
Income 1.382138 7 1.023386
Age 1.038338 1 1.018989
Gender 1.055916 1 1.027578
`Health Insurance` 1.191390 1 1.091508
`Dental Insurance` 1.428024 1 1.195000
Ethnicity 1.222646 5 1.020305
car::Anova(mod3) %>% round(3)Analysis of Deviance Table (Type II tests)
Response: Urgentcare
LR Chisq Df Pr(>Chisq)
Income 5.118 7 0.646
Age 6.732 1 0.009 **
Gender 0.405 1 0.524
`Health Insurance` 5.347 1 0.021 *
`Dental Insurance` 5.941 1 0.015 *
Ethnicity 17.629 5 0.003 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(mod2,mod3,test="LRT")Analysis of Deviance Table
Model 1: Urgentcare ~ Income + Age + Gender + `Health Insurance` + `Dental Insurance`
Model 2: Urgentcare ~ Income + Age + Gender + `Health Insurance` + `Dental Insurance` +
Ethnicity
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 2313 2104.7
2 2308 2087.1 5 17.629 0.003449 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
data.frame(BIC_mod2=BIC(mod2), BIC_mod3=BIC(mod3)) |> mutate(Diff=BIC_mod3-BIC_mod2) BIC_mod2 BIC_mod3 Diff
1 2197.747 2218.875 21.12804
The ethnicity model has a lower residual deviance but higher BIC, which implies that there is no evidence of better model performance when ethnicity is added to the model.
Dichotomized Income
mod2 <- glm(`Urgentcare`~Income_median + Age + Gender + `Health Insurance` + `Dental Insurance`,
data=qol,
family="binomial")
mod3 <- glm(`Urgentcare`~Income_median + Age + Gender + `Health Insurance` + `Dental Insurance` + Ethnicity,
data=qol,
family="binomial")
summary(mod2)
Call:
glm(formula = Urgentcare ~ Income_median + Age + Gender + `Health Insurance` +
`Dental Insurance`, family = "binomial", data = qol)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.555771 0.245147 -10.425 < 2e-16 ***
Income_medianAbove -0.116586 0.120051 -0.971 0.33148
Age 0.009257 0.003387 2.733 0.00627 **
GenderMale 0.041917 0.111215 0.377 0.70625
`Health Insurance`Yes 0.462895 0.207567 2.230 0.02574 *
`Dental Insurance`Yes 0.346721 0.135512 2.559 0.01051 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 2134.9 on 2324 degrees of freedom
Residual deviance: 2109.5 on 2319 degrees of freedom
(284 observations deleted due to missingness)
AIC: 2121.5
Number of Fisher Scoring iterations: 4
car::vif(mod2) Income_median Age Gender `Health Insurance`
1.180501 1.020747 1.009353 1.183367
`Dental Insurance`
1.336646
car::Anova(mod2) %>% round(3)Analysis of Deviance Table (Type II tests)
Response: Urgentcare
LR Chisq Df Pr(>Chisq)
Income_median 0.943 1 0.332
Age 7.408 1 0.006 **
Gender 0.142 1 0.706
`Health Insurance` 5.291 1 0.021 *
`Dental Insurance` 6.701 1 0.010 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(mod3)
Call:
glm(formula = Urgentcare ~ Income_median + Age + Gender + `Health Insurance` +
`Dental Insurance` + Ethnicity, family = "binomial", data = qol)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.966105 0.272723 -10.876 < 2e-16 ***
Income_medianAbove -0.052149 0.123518 -0.422 0.672879
Age 0.008862 0.003448 2.570 0.010163 *
GenderMale 0.068473 0.113922 0.601 0.547805
`Health Insurance`Yes 0.462083 0.207861 2.223 0.026213 *
`Dental Insurance`Yes 0.313955 0.138033 2.274 0.022937 *
EthnicityAsian Indian 0.339299 0.179341 1.892 0.058501 .
EthnicityFilipino 0.625998 0.206980 3.024 0.002491 **
EthnicityKorean 0.493661 0.181537 2.719 0.006541 **
EthnicityOther 0.485614 0.262280 1.852 0.064096 .
EthnicityVietnamese 0.650557 0.175978 3.697 0.000218 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 2134.9 on 2324 degrees of freedom
Residual deviance: 2092.0 on 2314 degrees of freedom
(284 observations deleted due to missingness)
AIC: 2114
Number of Fisher Scoring iterations: 4
car::vif(mod3) GVIF Df GVIF^(1/(2*Df))
Income_median 1.240227 1 1.113655
Age 1.032751 1 1.016244
Gender 1.051107 1 1.025235
`Health Insurance` 1.182135 1 1.087260
`Dental Insurance` 1.377205 1 1.173544
Ethnicity 1.162157 5 1.015141
car::Anova(mod3) %>% round(3)Analysis of Deviance Table (Type II tests)
Response: Urgentcare
LR Chisq Df Pr(>Chisq)
Income_median 0.178 1 0.673
Age 6.549 1 0.010 **
Gender 0.361 1 0.548
`Health Insurance` 5.254 1 0.022 *
`Dental Insurance` 5.271 1 0.022 *
Ethnicity 17.423 5 0.004 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(mod2,mod3,test="LRT")Analysis of Deviance Table
Model 1: Urgentcare ~ Income_median + Age + Gender + `Health Insurance` +
`Dental Insurance`
Model 2: Urgentcare ~ Income_median + Age + Gender + `Health Insurance` +
`Dental Insurance` + Ethnicity
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 2319 2109.5
2 2314 2092.0 5 17.423 0.003763 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
data.frame(BIC_mod2=BIC(mod2), BIC_mod3=BIC(mod3)) |> mutate(Diff=BIC_mod3-BIC_mod2) BIC_mod2 BIC_mod3 Diff
1 2155.972 2177.306 21.3341
We now calculate the odds ratios and 95% confidence intervals.
OR <- exp(coef(mod3))
OR_CI <- exp(confint(mod3))Waiting for profiling to be done...
OR_df <- data.frame(estimate = OR, LCL=OR_CI[,1], UCL = OR_CI[,2])
OR_df["Age",] <- OR_df["Age",]^10
OR_df estimate LCL UCL
(Intercept) 0.05150351 0.02979701 0.08689002
Income_medianAbove 0.94918706 0.74511073 1.20949077
Age 1.09266355 1.02104874 1.16891337
GenderMale 1.07087204 0.85625080 1.33860149
`Health Insurance`Yes 1.58737627 1.06756657 2.41698465
`Dental Insurance`Yes 1.36882840 1.04665526 1.79866817
EthnicityAsian Indian 1.40396275 0.98875426 1.99927046
EthnicityFilipino 1.87011201 1.24282179 2.80178534
EthnicityKorean 1.63830274 1.14848360 2.34241550
EthnicityOther 1.62517313 0.95703174 2.68631433
EthnicityVietnamese 1.91660756 1.35999859 2.71361396
Folk medicine
mod2 <- glm(Folkmedicine~Income + Age + Gender + `Health Insurance` + `Dental Insurance`,
data=qol,
family="binomial")
mod3 <- glm(Folkmedicine~Income + Age + Gender + `Health Insurance` + `Dental Insurance` + Ethnicity,
data=qol,
family="binomial")
summary(mod2)
Call:
glm(formula = Folkmedicine ~ Income + Age + Gender + `Health Insurance` +
`Dental Insurance`, family = "binomial", data = qol)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.382774 0.330715 -10.229 < 2e-16 ***
Income$10,000 - $19,999 0.673935 0.304433 2.214 0.02685 *
Income$20,000 - $29,999 0.541475 0.321107 1.686 0.09174 .
Income$30,000 - $39,999 0.864416 0.301175 2.870 0.00410 **
Income$40,000 - $49,999 0.388059 0.333190 1.165 0.24415
Income$50,000 - $59,999 0.573504 0.325026 1.764 0.07765 .
Income$60,000 - $69,999 0.794680 0.318034 2.499 0.01246 *
Income$70,000 and over 0.626996 0.263888 2.376 0.01750 *
Age 0.026843 0.003763 7.133 9.84e-13 ***
GenderMale -0.347185 0.126002 -2.755 0.00586 **
`Health Insurance`Yes -0.133492 0.196643 -0.679 0.49723
`Dental Insurance`Yes 0.048323 0.150114 0.322 0.74752
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1843.9 on 2309 degrees of freedom
Residual deviance: 1773.3 on 2298 degrees of freedom
(299 observations deleted due to missingness)
AIC: 1797.3
Number of Fisher Scoring iterations: 5
car::vif(mod2) GVIF Df GVIF^(1/(2*Df))
Income 1.268863 7 1.017154
Age 1.057633 1 1.028413
Gender 1.009714 1 1.004845
`Health Insurance` 1.251371 1 1.118647
`Dental Insurance` 1.434294 1 1.197620
car::Anova(mod2) %>% round(3)Analysis of Deviance Table (Type II tests)
Response: Folkmedicine
LR Chisq Df Pr(>Chisq)
Income 11.222 7 0.129
Age 51.608 1 <2e-16 ***
Gender 7.705 1 0.006 **
`Health Insurance` 0.456 1 0.500
`Dental Insurance` 0.104 1 0.747
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(mod3)
Call:
glm(formula = Folkmedicine ~ Income + Age + Gender + `Health Insurance` +
`Dental Insurance` + Ethnicity, family = "binomial", data = qol)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.018154 0.347709 -8.680 < 2e-16 ***
Income$10,000 - $19,999 0.611878 0.309753 1.975 0.04823 *
Income$20,000 - $29,999 0.562372 0.328592 1.711 0.08700 .
Income$30,000 - $39,999 0.847733 0.308206 2.751 0.00595 **
Income$40,000 - $49,999 0.363136 0.340150 1.068 0.28571
Income$50,000 - $59,999 0.439830 0.331955 1.325 0.18518
Income$60,000 - $69,999 0.629878 0.324214 1.943 0.05204 .
Income$70,000 and over 0.451240 0.269132 1.677 0.09361 .
Age 0.026241 0.003815 6.878 6.05e-12 ***
GenderMale -0.301015 0.129537 -2.324 0.02014 *
`Health Insurance`Yes -0.106211 0.199708 -0.532 0.59484
`Dental Insurance`Yes 0.211142 0.155190 1.361 0.17366
EthnicityAsian Indian -0.790092 0.201162 -3.928 8.58e-05 ***
EthnicityFilipino -0.818803 0.250572 -3.268 0.00108 **
EthnicityKorean 0.191121 0.162968 1.173 0.24089
EthnicityOther -0.623253 0.309280 -2.015 0.04389 *
EthnicityVietnamese -1.094267 0.213666 -5.121 3.03e-07 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1843.9 on 2309 degrees of freedom
Residual deviance: 1711.3 on 2293 degrees of freedom
(299 observations deleted due to missingness)
AIC: 1745.3
Number of Fisher Scoring iterations: 5
car::vif(mod3) GVIF Df GVIF^(1/(2*Df))
Income 1.382160 7 1.023387
Age 1.052858 1 1.026089
Gender 1.035179 1 1.017437
`Health Insurance` 1.244334 1 1.115497
`Dental Insurance` 1.487271 1 1.219537
Ethnicity 1.167382 5 1.015597
car::Anova(mod3) %>% round(3)Analysis of Deviance Table (Type II tests)
Response: Folkmedicine
LR Chisq Df Pr(>Chisq)
Income 9.299 7 0.232
Age 47.837 1 <2e-16 ***
Gender 5.464 1 0.019 *
`Health Insurance` 0.280 1 0.596
`Dental Insurance` 1.870 1 0.171
Ethnicity 62.007 5 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(mod2,mod3,test="LRT")Analysis of Deviance Table
Model 1: Folkmedicine ~ Income + Age + Gender + `Health Insurance` + `Dental Insurance`
Model 2: Folkmedicine ~ Income + Age + Gender + `Health Insurance` + `Dental Insurance` +
Ethnicity
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 2298 1773.3
2 2293 1711.3 5 62.007 4.673e-12 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
data.frame(BIC_mod2=BIC(mod2), BIC_mod3=BIC(mod3)) |> mutate(Diff=BIC_mod3-BIC_mod2) BIC_mod2 BIC_mod3 Diff
1 1866.23 1842.948 -23.28243
Dichotomized Income
mod2 <- glm(`Folkmedicine`~Income_median + Age + Gender + `Health Insurance` + `Dental Insurance`,
data=qol,
family="binomial")
mod3 <- glm(`Folkmedicine`~Income_median + Age + Gender + `Health Insurance` + `Dental Insurance` + Ethnicity,
data=qol,
family="binomial")
summary(mod2)
Call:
glm(formula = Folkmedicine ~ Income_median + Age + Gender + `Health Insurance` +
`Dental Insurance`, family = "binomial", data = qol)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.882715 0.251173 -11.477 < 2e-16 ***
Income_medianAbove 0.130728 0.134526 0.972 0.33117
Age 0.026576 0.003696 7.190 6.46e-13 ***
GenderMale -0.342586 0.125633 -2.727 0.00639 **
`Health Insurance`Yes -0.085254 0.195196 -0.437 0.66228
`Dental Insurance`Yes 0.034114 0.148202 0.230 0.81795
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1843.9 on 2309 degrees of freedom
Residual deviance: 1783.6 on 2304 degrees of freedom
(299 observations deleted due to missingness)
AIC: 1795.6
Number of Fisher Scoring iterations: 5
car::vif(mod2) Income_median Age Gender `Health Insurance`
1.200242 1.047522 1.008031 1.239412
`Dental Insurance`
1.404295
car::Anova(mod2) %>% round(3)Analysis of Deviance Table (Type II tests)
Response: Folkmedicine
LR Chisq Df Pr(>Chisq)
Income_median 0.946 1 0.331
Age 52.339 1 <2e-16 ***
Gender 7.547 1 0.006 **
`Health Insurance` 0.189 1 0.663
`Dental Insurance` 0.053 1 0.818
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(mod3)
Call:
glm(formula = Folkmedicine ~ Income_median + Age + Gender + `Health Insurance` +
`Dental Insurance` + Ethnicity, family = "binomial", data = qol)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.553090 0.272196 -9.380 < 2e-16 ***
Income_medianAbove -0.001996 0.138662 -0.014 0.98852
Age 0.025806 0.003749 6.884 5.83e-12 ***
GenderMale -0.292410 0.128999 -2.267 0.02340 *
`Health Insurance`Yes -0.054648 0.198257 -0.276 0.78282
`Dental Insurance`Yes 0.191237 0.152394 1.255 0.20952
EthnicityAsian Indian -0.834703 0.199775 -4.178 2.94e-05 ***
EthnicityFilipino -0.808877 0.249590 -3.241 0.00119 **
EthnicityKorean 0.206709 0.161188 1.282 0.19970
EthnicityOther -0.611527 0.307129 -1.991 0.04647 *
EthnicityVietnamese -1.057645 0.211557 -4.999 5.75e-07 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1843.9 on 2309 degrees of freedom
Residual deviance: 1720.6 on 2299 degrees of freedom
(299 observations deleted due to missingness)
AIC: 1742.6
Number of Fisher Scoring iterations: 5
car::vif(mod3) GVIF Df GVIF^(1/(2*Df))
Income_median 1.236557 1 1.112006
Age 1.038099 1 1.018871
Gender 1.030704 1 1.015236
`Health Insurance` 1.230342 1 1.109208
`Dental Insurance` 1.440654 1 1.200273
Ethnicity 1.101827 5 1.009744
car::Anova(mod3) %>% round(3)Analysis of Deviance Table (Type II tests)
Response: Folkmedicine
LR Chisq Df Pr(>Chisq)
Income_median 0.000 1 0.989
Age 47.813 1 <2e-16 ***
Gender 5.198 1 0.023 *
`Health Insurance` 0.076 1 0.783
`Dental Insurance` 1.589 1 0.207
Ethnicity 62.985 5 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(mod2,mod3,test="LRT")Analysis of Deviance Table
Model 1: Folkmedicine ~ Income_median + Age + Gender + `Health Insurance` +
`Dental Insurance`
Model 2: Folkmedicine ~ Income_median + Age + Gender + `Health Insurance` +
`Dental Insurance` + Ethnicity
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 2304 1783.6
2 2299 1720.6 5 62.985 2.932e-12 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
data.frame(BIC_mod2=BIC(mod2), BIC_mod3=BIC(mod3)) |> mutate(Diff=BIC_mod3-BIC_mod2) BIC_mod2 BIC_mod3 Diff
1 1830.036 1805.776 -24.25993
We now calculate the odds ratios and 95% confidence intervals.
OR <- exp(coef(mod3))
OR_CI <- exp(confint(mod3))Waiting for profiling to be done...
OR_df <- data.frame(estimate = OR, LCL=OR_CI[,1], UCL = OR_CI[,2])
OR_df["Age",] <- OR_df["Age",]^10
OR_df estimate LCL UCL
(Intercept) 0.07784076 0.04517938 0.1314289
Income_medianAbove 0.99800644 0.76053236 1.3101700
Age 1.29442127 1.20300404 1.3935990
GenderMale 0.74646247 0.57872932 0.9599576
`Health Insurance`Yes 0.94681801 0.64563258 1.4064657
`Dental Insurance`Yes 1.21074657 0.89993929 1.6362559
EthnicityAsian Indian 0.43400351 0.29079316 0.6374857
EthnicityFilipino 0.44535775 0.26751647 0.7144715
EthnicityKorean 1.22962464 0.89609715 1.6866812
EthnicityOther 0.54252167 0.28603435 0.9614947
EthnicityVietnamese 0.34727258 0.22674214 0.5207625
Social Networks